Как сделать полнотекстовый поиск с синонимами в django?

Всем доброго времени суток!
Мне на сайте нужно устроить механизм поиска. Требования:
  • полнотекстовый
  • морфологический
  • поиск по синонимам

С первыми двумя требованиями, как я понял, справляется sphinx. Но что-то я слышал, что он загнулся и больше не поддерживается. Раньше я использовал haystacksearch + whoosh, но там нет морфологии и поиска по синонимам.
Объясню, что я понимаю под поиском по синонимам. Допустим, есть товары кружка, чашка, чаша, пиала и т.п. Если пользователь пробьет в поиске "кружка", то результат должен содержать и чашки и пиалы. В принципе, по синонимам это не такое обязательное условие, им можно пренебречь, но мне даже хотя бы для себя узнать ,как это примерно можно сделать, для саморазвития. Что можете посоветовать, какие есть готовые батарейки?
  • Вопрос задан
  • 1245 просмотров
Решения вопроса 1
un1t
@un1t
Sphinx не загнулся, не знаю где ты это слышал, автор выступает на всех конфах и недавно анонсировал, что будет в 3й версии. Синонимы поддерживаются, но надо руками словарь синонимов составлять.
Sphinx подходит, Elasticsearch подходит и дакже встроенный в Postgres подходит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
loader777
@loader777
Python/django разработчик
Я для полнотекстового поиска использую связку haystack + Solr. Как раз на днях написал рецепт - djbook.ru/examples/68/. Связка не самая простая для новичка.
Добавить туда поиск с учетом синонимов будет несложно (строчка-две в конфиг файлах).

Многие советуют elasticsearch - в новом проекте хочу попробовать его.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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