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;
复制代码

 

posted @   星星c#  阅读(677)  评论(0编辑  收藏  举报
编辑推荐:
· .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 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示