Могу ли я идентифицировать совпадающие термины при поиске с помощью sphinx?

Я использую sphinx для полнотекстового поиска в базе данных mysql с помощью мышления sphinx.

Я хотел бы выделить совпадающие термины в результатах, которые я показываю пользователю.

Shpinx достаточно умен, чтобы поиск по слову «ботулизм» соответствовал фразе «мне нравится вводить ботулин в глаза».

Как я могу заставить его сказать мне, что «ботулин» соответствует «ботулизму»?


person Community    schedule 18.11.2008    source источник


Ответы (1)


Во-первых, я активно использую sphinx для одного из своих проектов, но я не использую ThinkingSphinx, поскольку используемый нами файл конфигурации довольно сложен, я использую настроенный плагин act_as_sphinx.

Чтобы ответить на ваш вопрос с точки зрения чистого сфинкса:

  • в sphinx есть API-интерфейс BuildExcerpts для получения выдержки из содержимого с подчеркнутым соответствием, см. http://www.sphinxsearch.com/docs/current.html#api-func-buildexcerpts.
    Мы считаем, что Sphinx должен предоставлять эту функциональность

  • чтобы сопоставить ботулизм с ботулиническим, вы должны скомпилировать sphinx со стеммером, возможно, алгоритм портера может ответить на ваш вопрос: см. http://www.sphinxsearch.com/docs/current.html#conf-morphology

Надеюсь, это поможет, и я настоятельно рекомендую вам ознакомиться с документацией sphinx, чтобы в полной мере использовать этот очень эффективный индексатор.

Манфред

person Manfred Dardenne    schedule 17.12.2008