天道酬勤

ES 5.* 版本常用操作

常用操作

1 新增字段  ( index/type/_mapping) , 里面用 properties设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUT idx-t-hr-iteminfo/es_t_hr_iteminfo/_mapping
{
   "properties": {
      "AREACODE":{
        "type": "keyword"
      },
      "AREACODETWO":{
        "type": "keyword"
      },
      "UPDATEFLAG":{
        "type": "keyword"
      }
   }
}

 2 新增一个文档  (需要把所有doc 字段全部赋值)

1
2
3
4
5
6
7
POST idx-t-hr-iteminfo/es_t_hr_iteminfo/VQW76871|1
{
  "Id": "VQW76871|1",
    "QRINFO": "VQW76871|1",
    "QRSTATUS": "1100000000",
    "PROJECTID": 46070
}

 3 部分更新

1
2
3
4
5
6
POST idx-t-hr-iteminfo/es_t_hr_iteminfo/_update_by_query
{
   "script": {
    "source": "ctx._source['UPDATEFLAG'] =  \"3\""
  }
}

 4 C# bulk 批量操作 (批量更新,支持单独几个字段的更新,只需要将需要更新的字段单独赋值即可)

复制代码
BulkDescriptor descriptor = new BulkDescriptor();

foreach (var item in searchResult.Documents)
{
    string areaCode = string.Empty;
    string areaCodeTwo = string.Empty;
    string updateFlag = "1"; 

    es_t_hr_iteminfo es_T_Hr_Iteminfo = new es_t_hr_iteminfo()
    {
        QRINFO = item.QRINFO,
        UPDATEFLAG = updateFlag
    };

    if (!string.IsNullOrWhiteSpace(areaCode))
    {
        es_T_Hr_Iteminfo.AREACODE = areaCode;
    }

    if (!string.IsNullOrWhiteSpace(areaCodeTwo))
    {
        es_T_Hr_Iteminfo.AREACODETWO = areaCodeTwo;
    }

    descriptor.Update<es_t_hr_iteminfo>(op => op.Id(item.QRINFO).Doc(es_T_Hr_Iteminfo).Index("idx-t-hr-iteminfo"));

}


Log.Information("Start bulk operaton");
var response = client.Bulk(descriptor);
Log.Information("End bulk operaton");
复制代码

总结

以上是 es 5版本的一些备注

posted @   JulyLuo  阅读(94)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示