Задать вопрос

Стоит ли использовать Sphinx, ElasticSearch или схожую технологию для организации поиска в маленьком проекте?

Здравствуйте.
Для начала хочу описать задачу:
Имеется корпоративный проект, написанный на Zend Framework 1, в качестве базы в данный момент установлена MariaDB. Структура у приложения довольно сложная, но при этом, в связи со специализацией организации клиентская база, по которой нужно осуществлять поиск не будет превышать несколько тысяч, возможно несколько десятков тысяч человек.

Поиск необходимо осуществлять по ФИО.
Номерам телефонов.
Некоторым видам документов.
Также по более сложным условиям.

Задача успешно решается созданием ряда функций для поиска, но в перспективе возможно появление полнотекстовыого поиска по сообщениям(служебным запискам и т.п.).

В связи с этим я задумался о внедрении какого-либо поискового движка заблаговременно. Я мало знаком со всеми представителями этой технологии(sphinx, elasticsearch, solr), поэтому не могу представить насколько сложно будет внедрить это дело в ZF1 и насколько удобно работать.

В глубине души я надеюсь, что это избавит меня от корявой функции поиска по ФИО, которая довольно криво работает с морфологией.

Резюме:
Насколько оправдана попытка внедрить и использовать такой тип инструмента при такой маленькой базе и при такой простой задаче?

UPD

В итоге попробовал ElasticSearch и Sphinx. И тот и другой из коробки решают все базовые задачи поиска без проблем, сфинкс очень быстро строит индексы и он экономичней, библиотек и для того и для другого полно. Если нужен чуть более навороченный инструмент с более развитой и разносторонней инфраструктурой, то стоит посмотреть на Эластик, если требуется шустрый поисковый движок и ничего лишнего, то Сфинкс - оптимальный вариант.
  • Вопрос задан
  • 3993 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 3
opium
@opium
Просто люблю качественно работать
Эти решения никак не помогут решить проблему поиска по фио, так как там нет морфологии. К примеру имена александра и саша ну никак формологическим поиском не найти через эти поисковики.
Ответ написан
@PapaStifflera
Родился, вырос...
Попробуйте Zend Lucene.
habrahabr.ru/post/123357
Ответ написан
В глубине души я надеюсь, что это избавит меня от корявой функции поиска по ФИО, которая довольно криво работает с морфологией.


Как уже выше обсудили, Sphinx, Elastic и прочие движки в этом контексте Вам вряд ли помогут, но давайте я попробую ответить на главный вопрос.

Насколько оправдана попытка внедрить и использовать такой тип инструмента при такой маленькой базе и при такой простой задаче?


Лично я бы внедрил. И вопрос не в том, насколько это сложно или просто, а скорее в том, что у Вас уже существует план развития, который предусматривает наличие технологии полнотекстового поиска. Для Вас этого должно быть достаточно, чтобы, по крайней мере изучить документацию по инструментам, которые вы хотите использовать, а затем и попробовать внедрить.
С ZF1 мне довелось работать не очень много, но никаких препятствий к простому внедрению Sphinx я не видел. В ZF2 мы его успешно внедряли и вся работа, с учетом написания кучи разных индексов заняла 3 человеко-дня, с учетом того, что в то время это был довольно новый опыт для команды.
А о том, стоит ли овчинка выделки в вашем конкретном случае судить только Вам, ведь нам не известно, какие у Вас отношения с заказчиком\начальством, о том, какие задачи для Вас приоритетные, а какие нет и так далее. Здесь слишком много переменных, чтобы ответить однозначно. Но одно можно точно сказать - попробовать в свободное время стоит, тем более, если Вы пишите, что подобного опыта до этого у Вас не было. Инвестируйте свое время в себя, как специалиста, поднимите свой уровень, ну как, стоит?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
un1t
@un1t
Замечу что elasticsearch требует для комфортной работы 2ГБ оперативки. sphinx в этом плане гораздо экономичнее. Однако с точки зрения удобства и возможностей elasticsearch сильно лучше.
Ответ написан
Ваш ответ на вопрос

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

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