Объединить поля в скрипте - PullRequest
0 голосов
/ 29 марта 2019

Наш индекс имеет поле соединения (родительские документы со многими дочерними элементами). Мы хотели бы выполнить поиск по дочерним элементам с помощью фильтра, который суммирует число из родительского документа с номером от дочернего элемента. Можно ли получить доступ к родительским полям в сценарии фильтра? Если так, как мы можем это сделать? Нужна ли будет последняя версия ES?

Мы используем ElasticSearch 6.6. Мы попытались поиграть с has_parent, inner_hits и script_fields, но мы не можем получить доступ к информации от родителя и потомка в одном и том же скрипте.

1 Ответ

0 голосов
/ 29 марта 2019

Выполните поисковый запрос по вашему дочернему типу и используйте has_parent для фильтрации по родительским полям

GET data/ChildTypeName/_search
{
  "query": {
    "bool": {
      "filter": {
        "has_parent": {
          "parent_type": "ParentTypeName",
          "query": {
            "match": {
              "my_parent_field": "my_parent_field_value"
            }
          },
          "inner_hits" : {}
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...