Elasticsearch масштабирование отношений между родителями и детьми
Просматривая документацию эластичного поиска по отношениям между родителями и детьми, я нашел эту строку, и я не уверен в этом.
родительский документ и все его дочерние элементы должны находиться в одном и том же осколке.
Случай использования:
- У меня есть индекс Elasticsearch в отношениях родитель-ребенок с двумя типами компании [родитель] и сотрудник [ребенок]
- Индексируемые записи в этом шаблоне 1 родитель имеет более 100 дочерних.
- Объем индекса большой, поэтому мы должны разделить их на несколько систем
В соответствии с утверждением, что родитель и потомок находятся в одном и том же сегменте, так как мы разделяем в нескольких системах, существует вероятность того, что родитель и потомок могут находиться в разных сегментах.
если так, как их избежать? если нет объясните пожалуйста?
1 ответ
Каждый документ использовать _routing
поле, которое указывает на какой-то осколок. Узнайте больше о маршрутизации здесь.
Значением по умолчанию, используемым для _routing, является _id документа или _parent ID документа, если он присутствует.
Это означает, что по умолчанию все ваши дочерние документы будут находиться в одном сегменте с их родительскими документами.
Ваш случай довольно прост, поэтому при использовании значений по умолчанию нет шансов, что родитель и ребенок могут находиться в разных осколках.
Но если отношение является прародителем или даже более сложным, вам нужно настроить маршрутизацию вручную. Подробнее здесь