elasticsearch dsl 相关案例说明

修改副本数

kibana语句

PUT advertiser_info_categories/_settings
{
          
   
      "index": {
          
   
        "number_of_replicas" : 1
    }
}

注释: 数字代表副本 1代表总副本为2

聚合操作

{
          
   
  "size": 0,
  "query": {
          
   
    "term": {
          
   
      "datetime": "2022-07-31"
    }
  },
  "aggs": {
          
   
    "layer_count": {
          
   
      "terms": {
          
   
        "field": "layer",
        "order": {
          
   
          "_count": "asc"
        },
        "size": 5
      }
    }
  }
}

注释: size为0 代表查询结果中只有聚合结果没有原始文档 aggs 聚合关键字 layer_count 自定义聚合的名字 “field”: “layer” 根据layer字段聚合 按照_count升序排序,取top5

去重求数量

{
          
   
  "size": 0,
  "query": {
          
   
    "bool": {
          
   
      "must": [
        {
          
   
          "prefix": {
          
   
            "layer": "bbbbbbbbbbbk"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "sort": [],
  "aggs": {
          
   
    "count": {
          
   
      "cardinality": {
          
   
        "field": "eId"
      }
    }
  }
}

注释: 相关功能类似等同以下sql

select count(distinct(eId)) from t1 where layer like bbbbbbbbbbbk% ;

更新

POST indexname/_update_by_query
{
          
   
  "query": {
          
   
    "bool": {
          
   
      "must": [
        {
          
   
          "terms": {
          
   
            "originalityPicture": [
              "Yzg0NzZlNDQzMDg5Yjg0ZGVkMTEwYWZhMmY5YTRlZDg=.jpg",
              "MDQ5ZTA0MzYwY2U3ZjZlZjJhMzgxYjQyNjBjYjZlZTI=.jpg"
            ]
          }
        }
      ]
    }
  },
  "script": {
          
   
"source": "ctx._source.isLegal=11"
 }
}

注释: 相关功能类似等同以下sql

update indexname set isLegal = 11 where originalityPicture in ( "Yzg0NzZlNDQzMDg5Yjg0ZGVkMTEwYWZhMmY5YTRlZDg=.jpg","MDQ5ZTA0MzYwY2U3ZjZlZjJhMzgxYjQyNjBjYjZlZTI=.jpg");

删除

删除功能类似于更新操作,使用_delete_by_query 即可。

经验分享 程序员 微信小程序 职场和发展