Поиск и фильтрация наasticsearch против поиска наasticsearch и фильтрация на postgres - PullRequest
0 голосов
/ 18 февраля 2019

В нашем стеке используются и эластичный поиск, и postgres.Мое руководство считает, что лучше выполнять поиск текста наasticsearch и получать идентификаторы попаданий.Затем запустите запрос IN и отфильтруйте его по postgres.Например: -

a = es.search({params})//returns a list of ids(pks)
b = Dummy.objects.filter(id__in=a).filter({params})

Я считаю, что в этом нет необходимости, когда мы можем делать все на эластичном поиске.Какой подход будет быстрее?

РЕДАКТИРОВАТЬ: Подробнее.

Это в основном файловая библиотека для пользователей.Мы будем хранить файлы в нашей корзине S3.Мы планируем хранить подробности файла, такие как имя файла, s3prefix, формат, метаданные на ES.Есть и другие поля, такие как date_modified, date_created, owner, file_size.Мы хотим, чтобы пользователь мог сортировать и фильтровать эти параметры.Поскольку это новый продукт, пользователей будет всего несколько.10-20 макс.И ни одной записи не должно быть тысяч.Но эти цифры могут расти довольно быстро.

1 Ответ

0 голосов
/ 18 февраля 2019

Если вы можете сохранить все данные, относящиеся к ответу, вasticsearch, то наличие второго перехода в postgres является избыточным, поскольку ES может хранить и извлекать все нужные документы, включая все необходимые фильтры.

Еслис другой стороны, postgres db содержит некоторую информацию, которая является дополнительным слоем поверх данных в ES, тогда необходим второй запрос к postgres.Причины такой настройки могут заключаться в том, что некоторые данные в ES довольно «статичны», а данные postgres имеют динамический характер со многими изменениями и обновлениями.

Итак, оба варианта будут работать.все зависит от данных и того, как они хранятся в двух БД.второй запрос к postgres привнесет дополнительную задержку, но она может быть очень маленькой при хорошей настройке и не замечаться пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...