Elasticsearch масштабирование отношений между родителями и детьми

Просматривая документацию эластичного поиска по отношениям между родителями и детьми, я нашел эту строку, и я не уверен в этом.

родительский документ и все его дочерние элементы должны находиться в одном и том же осколке.

Случай использования:

  • У меня есть индекс Elasticsearch в отношениях родитель-ребенок с двумя типами компании [родитель] и сотрудник [ребенок]
  • Индексируемые записи в этом шаблоне 1 родитель имеет более 100 дочерних.
  • Объем индекса большой, поэтому мы должны разделить их на несколько систем

В соответствии с утверждением, что родитель и потомок находятся в одном и том же сегменте, так как мы разделяем в нескольких системах, существует вероятность того, что родитель и потомок могут находиться в разных сегментах.

если так, как их избежать? если нет объясните пожалуйста?

1 ответ

Решение

Каждый документ использовать _routing поле, которое указывает на какой-то осколок. Узнайте больше о маршрутизации здесь.

Значением по умолчанию, используемым для _routing, является _id документа или _parent ID документа, если он присутствует.

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

Но если отношение является прародителем или даже более сложным, вам нужно настроить маршрутизацию вручную. Подробнее здесь

Другие вопросы по тегам