Elasticsearch学习笔记之—初次使用ElasticLinqClient
一、创建索引和Mapping(注意一定要指定分词器 analyzer,要不然第三步的查询,就查询不正确(但使用ElasticJsonClient可以),在这个问题上折腾了很久很久直到怀疑人生)
PUT person_index { "mappings": { "personn": { "properties": { "id":{ "type":"integer" }, "name":{ "type":"text", "analyzer":"standard" }, "address": { "type": "text", "analyzer":"standard" } } } } }
二、生成索引下的数据
PUT person_index/personn/1 { "id":1, "name":"张三", "address":"北京海淀区352号" } PUT person_index/personn/2 { "id":2, "name":"李四", "address":"天津市滨海新区88号" } PUT person_index/personn/3 { "id":3, "name":"王五张", "address":"无" }
var person = new Person { Id = 1, FirstName = "china", LastName = "Laarman" }; var indexResponse = client.Index(person, c => c.Index("people").Type("person"));
三、查询代码
string indexName = "person_index"; var searchResponse = eSSever.ElasticLinqClient.Search<Personn>(s => s .From(0) .Size(10).Index(indexName) .Query(q => q .Match(m => m .Field(f => f.Name) .Query("张") ) ) ); var peoples = searchResponse.Documents;
四、也可以使用lowLevel的形式传值
var searchResponse = client.LowLevel.Search<SearchResponse<Person>>("people", PostData.Serializable(new { from = 0, size = 10, query = new { multi_match = new { fields = new string[] { "firstName", "lastName" }, query = "Laarman" } } })); var responseJson = searchResponse; var docs = responseJson.Documents;
分类:
ElasticSearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?