good_br
@good_br
учусь

Какую технологию выбрать для поиска Elastic или Postgres?

Ситуация такая , делаем ТГ бота задача которого подтягивать документ из google docs и делать нечеткий поиск по документу , мнения в команде разошлись, поэтому свое мнение нужно пояснить и аргументировать . Спасибо !

На данный момент , есть такие точки зрения :

1)прогер который делает это проект , раньше с elastic не сталкивался , сам проект сделан на СУБД postgres , так же одна из сторон привела , как аргумент данную статью в пользу создание поиска на основе Postgre

2)
" ....Для него все равно необходимо писать дополнительный код. Тк в SQAlchemy такого функционала просто нет. Придётся напрямую работать с бд. И по отзывам работает этот extension довольно ерундово - медленно, и результаты поиска часто не совпадают с тем, что требовалось...."

Кто прав и почему ?)
  • Вопрос задан
  • 2598 просмотров
Пригласить эксперта
Ответы на вопрос 4
@abmanimenja
Вы оба не правы

делать нечеткий поиск по документу

Какой-какой? Fuzzy?
Вы точно понимаете о чём речь?

Elastic хорош в Full-Text-Search, а не в Fuzzy Search.
PostgreSQL тоже для Fuzzy Search не предназначен.

прогер который делает это проект , раньше с elastic не сталкивался


Да и вы тоже не компетентны:

Путаете виды поиска Fuzzy и Full-Text

И не понимаете, что Elastic силен только за счет своего кластера. Он намного более хорошо живет в огромном многосерверном кластере, чем PostgreSQL. Вам же это различие даже в голову не пришло.

А если же вам кластер не нужен - то и Elastic не нужен. Ибо он тормозной сравнительно.
Для односерверных машин отличный выбор SphinxSearch или его форк Мантикора.

Sphinx работает существенно быстрее, чем Elastic и жрет ресурсов памяти существенно меньше. Но не способен работать в кластере.

Кто прав и почему ?)

Прав тот, кто выше по иерархии.
Если вы не технический директор, то оставьте выбор технологии, на которой будет работать программист, ему самому.

Судя по тому, насколько слабо и вы сам и тот программист разбираетесь в технологиях - у вас там команда джунов. Явно не тот случай, чтобы что-то совершенное создавать.

Просто пишите на том, что знаете.
Ответ написан
Комментировать
AlexeyVi
@AlexeyVi
Linux, MySQL, PostgreSQL, ElasticSearch, HiLoad
ElasticSearch вам нужен будет только если будете расти, как abmanimenja сказал смысла от 1-го инстанса нет. Эластик прекрасен в кластере минимум из 3-х серверов со своей прекрасной отказоустойчивостью и горизонтальным масштабированием. И не стоит забывать о месте на дисках, по умолчанию эластик жмет данные, чего не умеет PostgreSQL. Так же можно за данными обращаться к любой ноде или выделенной клиентской(им) при большом кластере. И шардирование конечно из коробки. Но есть и минусы, эластик не очень любит DELETE и UPDATE, если у вас таких операций предполагается много, это НЕ ваш ВЫБОР.
Ответ написан
Комментировать
akokarev
@akokarev
Начинающий программист
Из озвученной задачи я бы делал бота средствами Google Apps Script. Из плюсов - бесплатный хостинг для бота, с отличным uptime и временем выполнения; все необходимые библиотеки уже подключены и можно подключать свои. По идее, в api к гугло-докам должен быть поиск как среди списка файлов, так и внутри файла.
Делал бота на основе гугл таблиц - работает как часы! Даже cron задачи реализовал на основе ежеминутного тригера.
Ответ написан
@asd111
Sphinx или elastic. В постгрес есть тонкости при полнотекстовом поиске чтобы не тормозило.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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