Elasticsearch Query + Agg поисковый запрос - PullRequest
0 голосов
/ 04 января 2019

Данные в моем эластичном поиске содержат поле с именем 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
}

Может кто-нибудь предложитьо том, как это сделать?

1 Ответ

0 голосов
/ 04 января 2019

Ошибка довольно очевидна

[размер] должен быть больше 0. Найдено [0] в [duplicateNames]

Так что просто установите размер на что-то большеечем 0, в любом случае не имеет смысла устанавливать его в 0

        "terms": {
          "field": "facilityName.facilityName",
          "size": 10,
          "min_doc_count": 2
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...