Найти все документы эластичного поиска, которые являются родительскими - PullRequest
0 голосов
/ 04 мая 2020

В моем индексе все документы имеют поле соединения с именем relation и являются родительскими или дочерними. Отображение выглядит следующим образом:

"relation": {
  "type": "join",
  "eager_global_ordinals": true,
  "relations": {
    "parent": "child"
  }
},

Поле relation для do c без детей будет выглядеть так:

"_source": {
  "relation": {
    "name": "parent"
  },
  "children": [],

Я хочу найти все документы которые являются родителями, есть ли у них дети или нет. Я не вижу примеров в документации Elasticsearch, которые могли бы достичь этого, поэтому попробовал это:

{"query": {"bool": {"must": [
  {"match":{"relation.name":"parent"}}
]}}}

и не получил результата (неудивительно, что b / c поле соединения - особый случай). Итак, как мне найти всех родителей, как правило, в сочетании с другими условиями сопоставления, например, документами со значением {value} в поле A и родителем с детьми или без детей.

1 Ответ

1 голос
/ 05 мая 2020

Чтобы найти родительские документы, просто используйте имя поля отношения в запросе, например:

{
  "query": {
     "match": {
        "relation": "parent"
     }
  }
}

Вы можете использовать запрос match, а лучше запрос term.

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