Корректировка орфографии в сфинксе? - PullRequest
7 голосов
/ 19 мая 2010

Я собирался интегрировать поиск на основе сфинкса в веб-сайт, но обнаружил, что встроенной поддержки для исправления орфографии нет.

Люди в Интернете предлагают использовать pspell или другие сторонние библиотеки для достижения цели, но проблема в том, что данные, в которых я собираюсь искать, содержат в основном "технические" термины, такие как названия брендов, поэтому я не думаю, что общие библиотеки будут включать их.

С другой стороны, Xapian заявляет, что имеет поддержку коррекции орфографии на основе индексированных данных, именно то, что я хочу. Стоит ли вместо этого использовать Xapian? Я все еще не совсем понимаю, какой полнотекстовый поисковик мне следует использовать: Sphinx выглядит неплохо, но в нем отсутствуют некоторые интересные функции Xapian (или, может быть, Lucene?), Хотя у последнего, похоже, меньше сообщество и меньше документации.

Я думаю, что могу решить проблему с помощью слов, отсутствующих в словаре pspell, используя для него пользовательский, но я не уверен, что это приведет к заметным потерям производительности? Я собираюсь использовать поисковую систему для поиска в центре внимания (отдельный поиск по ajax для каждой введенной буквы) на довольно популярном веб-сайте, поэтому производительность имеет значение.

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

Любые предложения по общему дизайну пользовательского полнотекстового поискового движка тоже приветствуются.

Спасибо

Ответы [ 2 ]

5 голосов
/ 05 ноября 2010

Sphinx не имеет встроенной коррекции орфографии, но это может быть реализовано с помощью Sphinx. Там есть только одна статья с инструкциями (автором Sphinx) об этом http://habrahabr.ru/blogs/sphinx/61807 (на русском языке. Вы можете использовать GoogleTranslate для прочтения этой статьи. Посмотрите вторую часть статьи под названием "Я понял, это намек" ".)

Я недавно внедрил этот метод - отлично работает!

1 голос
/ 05 ноября 2010

Sphinx позволяет вам использовать морфологические препроцессоры и словари форм слова. И то и другое вместе может приблизить вас к тому, чего вы хотите достичь. Вы можете прочитать больше об обеих темах здесь: http://sphinxsearch.com/docs/manual-0.9.8.html#conf-morphology и далее ниже.

Существует несколько «ароматов» препроцессоров морфологии, выберите тот, который наилучшим образом соответствует вашим потребностям. В документах также упоминается проект Snowball, который может использоваться для добавления основ на других языках, кроме встроенного английского и русского, если это необходимо. Сайт проекта: http://snowball.tartarus.org/

Sphinx - очень быстрый полнотекстовый поисковый движок, и использование стеммеров вряд ли замедлит его до такой степени, что вы начнете замечать это.

...