в чем преимущество объединения родитель-ребенок над денормализованным полем - PullRequest
0 голосов
/ 06 ноября 2019

я понимаю, что тип объединения "родительский / дочерний" эластичный поиск поддерживает такие запросы, как has_parent, has_child. Но для моего простого варианта использования у меня всегда будет только один тип «родитель-ребенок», у одного родителя могут быть миллионы детей, у одного ребенка может быть только один родитель. Я могу представить родителя в виде строкового поля. Единственный запрос, который мне небезразличен и я делаю много, - это получить все дочерние документы с определенным parent_id.

Каков рейтинг запросов среди следующих трех моделей данных?

  1. индексировать как родительские / дочерние документы и использовать запрос parent_id для извлечения всех дочерних элементов.
  2. индексировать денормализованный документ с родительским_идом в качестве строкового поля документа, направлять документ по полю parent_id,и используйте term_query для извлечения всех документов, имеющих определенное поле parent_id.
  3. индексирование дочерних документов в качестве вложенных полей и поле parent_id в полях верхнего уровня. (у этого есть недостаток медленного обновления, но меня больше интересует перфект запросов)

этот вопрос с автоответчиком затронул ту же ситуацию, но ответ не ясен, и единственный тип родителязапрашивая документ, я сделаю это, чтобы соответствовать по строке parent_id. Почему я не должен легко реализовать отношение типа данных соединения, подобное Elasticsearch parent-child

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