Есть таблица в PG, которая имеет более 120 миллионов записей. Нужен поиск по полю с адресом.
Пример
Цитата |
167026, РЕСПУБЛИКА КОМИ, ГОРОД СЫКТЫВКАР, ПРОСПЕКТ БУМАЖНИКОВ |
Полнотекстовый поиск для этого подойдет или использовать что-то другое ?
Подскажите, как лучше это осуществить ?
FatCat
18.10.2018 - 16:38
Я не использую полнотекстовый поиск на больших таблицах: жуткие тормоза при добавлении новых записей.
_____________
Бесплатному сыру в дырки не заглядывают...
а что тогда использовать ?
Zzepish
18.10.2018 - 17:50
Kusss
Можно через apache solr, или elasticsearch
sergeiss
18.10.2018 - 19:00
Я не использовал полнотектсовый поиск в PG, но мне так кажется, что он должен работать нормально, т.е. быстро. Потому что там есть куча всего, включая индексы. Это ж не просто LIKE, а специальный механизм! Всякие эластиксёчи тоже ж работать будут с точно такими же данными

Да еще понадобится делать копию данных, хранящихся в основной таблице. Те же 120 миллионов записей плюс индексы для работы эластика. Или кто-то думает, что эластик всё из воздуха берет??? Также получаем задачу обновления БД у эластика при изменении основных данных.
Так что если уж и геморроиться, то я бы с Посгрёй стал заниматься.
ПыСы. Опять же, на изучение нового ПО и понимание его особенностей надо время и силы.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
vagrand
19.10.2018 - 09:21
Я использую sphinx на своем проекте. Данных у меня тоже много, хотя не 120 лямов конечно. Индексы обновляю раз в час по крону. Ищет быстро.
P.S. Чтобы не нагружать основную БД при обновлении индексов Sphinx-а можно натравить его на реплику базы.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.