@iva3682

Как объединить результаты запроса к Elastic + фильтр с Mysql?

Есть некий набор данных размером 300 млн строк каждый день. Набор данных состоит из нескольких полей: одно текстовое поле, остальные числовые. В текстовом поле уникальных значений около 80 млн за все время. Как реализовать схему, при которой мы эти 80 млн уникальных значений грузим в эластик, остальное в Mysql. Сложность в том, что поиск нужно делать одновременно и по текстовому полю, и по числовым данным (условие И). Например, вбиваем в эластик некий запрос, выдает X релевантных результатов, но по числовому фильтру они не подходят, подходит только результат в позиции X+1 например. Если грузить в эластик все 300 млн денормализованных данных, размер индекса становится очень большим (несколько десятков гигабайт, а данные нужны за месяц к примеру), да и грузятся они достаточно долго (за сутки успевает, но впритык). То есть как можно заджоинить результаты выдачи эластика и mysql?
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
Грузите в эластик только, по чему индексируете, затем любой запрос из эластика возвращает ТОЛЬКО ид записей, а уже по ид достаёте полные записи из mysql по запросу select * from tbl where id in (1,2,3)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы