P.S: мы используем Elastic 6.x

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

Для окончательного решения мне было интересно, что у меня есть следующие вопросы:

  • Сколько вложенных документов / размера массива я могу сохранить в одном поле
  • Нам приходится часто манипулировать полями, поэтому каковы рекомендации, если мы используем вложенный тип поля?
  • Каковы ограничения Parent / child, если мы используем 4 типа отношений

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

Заранее спасибо

3
ieatbytes 20 Апр 2018 в 15:03

1 ответ

Лучший ответ

Сколько вложенных документов / размера массива я могу сохранить в одном поле

По умолчанию у вас может быть максимум 50 вложенных полей. определяется для каждого индекса. В каждом из этих массивов вложенных полей вы можете хранить любое количество элементов.

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

Вот где вложенные поля не работают, так как всякий раз, когда вложенный документ изменяется, вам нужно либо переиндексировать весь родительский документ, либо определить с помощью сценария, какой вложенный документ нужно обновить, но это может быстро стать довольно запутанным.

Каковы ограничения Parent / child, если мы используем 4 типа отношений

Начиная с ES 6.x, вы ограничены одно join поле для каждого индекса.

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

Выбор родительского / дочернего или вложенного документа

9
Rakmo 27 Ноя 2019 в 09:36