В OpenSearch под маршрутизацией понимается маршрутизация документов. Когда вы индексируете документ, OpenSearch определяет, в какой шард он должен быть направлен для индексирования.
Выбор шарда осуществляется по следующей формуле:
1 | shard = hash(_routing) % number_of_primary_shards |
Где значение _routing по умолчанию равно _id.
Важно знать, на какой шард направляется документ, поскольку в дальнейшем OpenSearch должен будет определить, где найти этот документ при запросах на его поиск.
Примеры
В twitter-индексе с 2 первичными шардами документ с _id, равным "440", направляется на шард номер:
1 2 3 4 5 | shard = hash( 440 ) % 2 PUT twitter/_doc/440 { ... } |
Примечания и полезные сведения
Для повышения скорости поиска можно создавать пользовательскую маршрутизацию. Например, можно включить пользовательскую маршрутизацию, при которой будет запрашиваться только один шард (шард, содержащий ваши данные).
Для создания пользовательской маршрутизации в OpenSearch необходимо настроить и определить, что не вся маршрутизация будет выполняться в соответствии с настройками по умолчанию. ( v <= 5.0)
1 2 3 4 5 6 7 8 | PUT my_index/customer/_mapping { "order":{ "_routing":{ "required":true } } } |
Это приведет к тому, что в каждом документе типа "клиент" должна быть указана пользовательская маршрутизация.