Elasticsearch实战应用-dsl语句

时间:2024-11-21 07:47:18

修改副本数

其中数字代表副本 1代表总副本为2

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

增加字段

POST hmcs_product/_mapping/_doc
{
  "properties": {
      "operatorState": { 
      "type": "integer"
    }
  }
}

根据查询条件删除

用到方法为delete_by_query,顾名思义,根据查询的结果删除,类似于MySQL中的 delete ...where。其中scroll_size是一次批量检索的文档数量,而slices则是用于并行删除大量数据的一个参数。

POST hmcs_ad_violation_count/_delete_by_query?scroll_size=10000&slices=5
{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "adType": ["1","7"]
          }
        }
      ]
    }
  }
}

聚合操作

size为0 代表查询结果中只有聚合结果没有原始文档

aggs 聚合关键字

layer_count 自定义聚合的名字

"field": "layer" 根据layer字段聚合

按照_count升序排序,取top5

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

根据字段长度查询

POST hmcs_shopping_daily_must_have/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "script": {
            "script": {
              "lang": "painless",
              "source": "doc['productId'].value.length() > 5"
            }
          }
        }
      ]
    }
  }
}

后续待补充...