Я уже некоторое время использую Elasticsearch в своей компании и, похоже, до сих пор хорошо работал для наших поисков. Мы видели более сложные варианты использования от наших клиентов, которые нуждались в дополнительных «специальных/расширенных» возможностях запросов и связях между документами (или объединениях в традиционном смысле). Я понимаю, что ES не создан для объединений, и рекомендуемым способом является денормализация. До сих пор мы денормализовали документы для поддержки каждого варианта использования, и это само по себе стало слишком сложным и дорогим для нас, поскольку нашим клиентам приходится долго ждать, чтобы развернуть это изменение кода.
Наш бизнес чаще критиковал нас за то, что «Эй, ваша модель данных неверна. Она не подходит для более умных запросов». Команде каждый раз мучительно труднее объяснить, зачем нужна денормализация.
Несколько примеров проблем:
"Find me all the persons having the same birthdays"
"Find me all the persons travelling to the same cities within the same time frame"
Представьте себе, что каждый документ о событии — это запись о человеке с информацией о его путешествии.
Итак, существует ли концепция конвейерного поиска, в которой я могу разбить поиск на несколько поисковых запросов и передать результат одного в качестве ввода другому? Или есть какой-либо другой рекомендуемый способ решения таких проблем без необходимости кипятить океан?