Вкратце: вы создаете несколько индексов, например, один для текстов, один для дат, один для географического местоположения, один для чисел и т. Д. Когда вы добавляете документ в свой индекс, вы определяете, как индексировать каждое поле, которое оно имеет.
Получение документов обычно включает в себя пересечение результатов (идентификаторов документов) из нескольких индексов (продуктов со словами "обувь" в радиусе 100 км и ценовом диапазоне 50-100).
Чтобы масштабировать это до огромных наборов данных, вы обычно используете метод, называемый sharding - каждый сервер содержит данные индекса для N документов, и вы отправляете запрос всем серверам индекса одновременно.Каждый из них возвращает лучшие результаты X, а вы сортируете их и получаете унифицированные результаты X.
Надеюсь, это было то направление, которое вы искали.