Получить всех детей родителей, которые соответствуют запросу в elasti c поиск - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю над elasti c search 6.5 и использую объединенный тип данных для отношений родитель-ребенок. Я могу создать индекс с несколькими родителями и ассоциированными детьми.

Теперь я хочу найти всех детей родителей, которые соответствуют введенной фразе. например. Если пользователь вводит 'San', тогда запрос должен искать всех родителей, соответствующих этой фразе. т.е. песок, сэндвич, дезинфицирующее средство. А затем, используя их в качестве 'id', возвращают также все дочерние элементы.

Я пытался использовать 'parent_id', но он не работает с запросом на совпадение.

{
  "query": {
    "parent_id": { 
      "type": "answer",
      "id": "1"
    }
  }

Приведенный выше запрос я могу искать для детей, но идентификатор родителя должен быть полностью указан, но я ищу что-то, где вы можете сопоставить фразу и поиск.

Не могли бы вы помочь я и прямо к правильному подходу.

Спасибо.

1 Ответ

0 голосов
/ 21 апреля 2020

Вам нужно использовать has_parent

{
  "query": {
    "has_parent": {
      "type": "parent_type", --> replace with parent join_field value
      "query": {
        "match_phrase_prefix": {
          "FIELD": "PHRASE"
        }
      },
      "inner_hits": {} --> will return child documents
    }
  }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...