В Elasticsearch индекс состоит из одного или нескольких основных шардов, где шард является экземпляром Lucene.Каждый основной сегмент может иметь ноль или более реплик, существование которых обеспечивает высокую доступность и повышает производительность поиска.
Один фрагмент может содержать много данных.Однако при использовании нескольких сегментов легче распределить рабочую нагрузку между несколькими процессорами и несколькими серверами.
При этом вам необходим баланс.Правильное количество шардов зависит от ваших данных и контекста.Осколки не являются бесплатными, поэтому, если вы используете кластер из 100 узлов, полезно иметь тысячи осколков, но вы не хотите этого на одном узле.
В Elasticsearch, а также при наличиииндексы, у вас есть понятие типов.Представьте, что индекс похож на базу данных, а тип - на таблицу.
Использование разных типов не требует дополнительных затрат и лучше подходит для вашего примера, чем отдельные индексы.
Вы можетепоиск по всем типам (или выбранному списку типов) и по всем индексам (или выбранному списку) или любой комбинации.
Каждый тип может иметь свои собственные поля (например, столбцы в таблице).
Итак, в вашем примере у меня будет один индекс, содержащий 3 типа, каждый со своими полями.Начните с количества по умолчанию первичных осколков (5) и количества реплик по умолчанию (1) и изменяйте их только тогда, когда вы лучше понимаете свои данные.
Примечание: не путайте индекс в Elasticsearch с индексом вбаза данных