Elasticsearch - Отсутствует агрегация со значением - PullRequest
0 голосов
/ 02 мая 2019

Ниже приведена структура документа, который я проиндексировал вasticsearch 6.7

{
    "instance": {
        "id": 1,
        ...
        "relatedInstances": [
            {
                "id": 101,
                ...
                "instFields": [
                    {
                        "sourceFieldId": 202,
                        "fieldValue": "some value"
                    },
                    {
                        "sourceFieldId": 505,
                        "fieldValue": "some value"
                    },
                    ...                 
                ]
            },
            ...
        ]
    }
}
  • Документ может иметь разные instance.relatedInstances.instFields.sourceFieldId s, и если документ не имеет определенного instance.relatedInstances.instFields.sourceFieldId, то он не включается в документ.
  • Я пытаюсь выполнить агрегацию (подсчет) на instance.relatedInstances.instFields.sourceFieldId для всех экземпляров, которые имеют instance.relatedInstances.instFields.sourceFieldId значение 202.

  • Мне также нужно включить количество экземпляров, которые не имеют instance.relatedInstances.instFields.sourceFieldId со значением 202

Я пытался с помощью следующего запроса,

"aggs": {
    "missing-count": {
      "missing": {
        "field": "instance.relatedInstances.instFields.sourceFieldId",
        "value": "202"
      }
    }                     
}

и получил ошибку [missing] unknown field [value], parser not found.

Согласно документации отсутствует поле , которое можно указать, но оно не показывает, как найти документы, у которых нет поля с определенным значением.

Ценю любую помощь для решения этой проблемы.

...