Как сохранить синхронизацию данных SQL и Elasticsearch c и из каких источников искать? - PullRequest
0 голосов
/ 09 мая 2020

Я видел два упомянутых решения, и мне было интересно, что делает большинство людей.

  1. Используйте logsta sh

  2. Кодируйте свой приложение для записи в Elasticsearch вместе с SQL. Например,

public saveRecord() {
    saveToElasticsearch();
    saveToSQL();
}

Другой вопрос - как выполнить фактический поиск объекта? Вы используете ТОЛЬКО Elasticsearch?

Если нет, я предполагаю, что вы выбираете из Elasticsearch на основе ключевых слов и используете возвращенные идентификаторы для фильтрации вашего запроса SQL. Тогда мой вопрос: как вы справляетесь с разбивкой на страницы? Например, предположим, что вам нужны только результаты от 50 до 100. Сначала вы запрашиваете Elasticsearch, который возвращает 50-100. Затем запрос SQL сокращает это количество до 20 результатов - остальные 30 результатов относятся к тому, что было бы следующим запросом Elasticsearch (например, 100–150). Вы продолжаете ходить туда-сюда?

1 Ответ

1 голос
/ 09 мая 2020

Что касается вашего первого вопроса проверьте здесь

Что касается второго вопроса, если вы планируете использовать elasticsearch в качестве уровня поиска, лучше сделайте это для всех доступных для поиска / фильтрации полей. Как вы описали, альтернатива очень скоро станет беспорядочной. Используйте elasticsearch для всех ваших поисков / фильтров и даже агрегатов, если это соответствует вашим потребностям. Используйте базу данных sql как свою точку зрения и просто получите оттуда полную полезную нагрузку.

В общем, если вам нужно будет разбивать страницы на страницы, ваш поиск должен быть лучше в одном месте, иначе он станет некрасивым.

...