【问题标题】:Elasticsearch Query + Agg search queryElasticsearch 查询 + Agg 搜索查询
【发布时间】:2019-01-04 17:18:33
【问题描述】:

我的 elasticsearch 中的数据包含一个名为 facilityName 的字段。我有一个要求,我必须查看是否有任何重复记录,facilityNameTypeCode 为“UWI”并且具有相同的facilityName 值。下面是一个结构示例:

    "facilityName": [
      {
        "facilityNameTypeId": {
          "facilityNameTypeCode": "Name"
        },
        "facilityName": "Rishav jayswal"
      },
      {
        "facilityNameTypeId": {
          "facilityNameTypeCode": "Name"
        },
        "facilityName": "R.M"
      }
  ]

这是我创建的查询:

GET _search
{
    "query" : {
        "term" : {"facilityName.facilityNameTypeId.facilityNameTypeCode" : "UWI"}
    },

    "aggs" : {
        "duplicateNames": {
            "terms": {
                        "field": "facilityName.facilityName",
                        "size": 0,
                        "min_doc_count": 2
                    }
            }
    }
}

但是我遇到了这个错误:

{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "[terms] failed to parse field [size]",
        "line": 10,
        "col": 27
      }
    ],
    "type": "parsing_exception",
    "reason": "[terms] failed to parse field [size]",
    "line": 10,
    "col": 27,
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "[size] must be greater than 0. Found [0] in [duplicateNames]"
    }
  },
  "status": 400
}

谁能建议如何做到这一点?

【问题讨论】:

    标签: elasticsearch elasticsearch-aggregation elasticsearch-query


    【解决方案1】:

    错误很明显

    [size] 必须大于 0。在 [duplicateNames] 中找到 [0]

    所以只需将 size 设置为大于 0 的值,无论如何将其设置为 0 没有多大意义

            "terms": {
              "field": "facilityName.facilityName",
              "size": 10,
              "min_doc_count": 2
            }
    

    【讨论】:

    • 我也有同样的问题,我认为他试图获得无限的结果而不是默认的 10 个文档
    猜你喜欢
    • 2021-08-11
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2015-03-08
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多