Как настроить Solr для использования приближенного сопоставления строк Левенштейна? - PullRequest
8 голосов
/ 18 ноября 2009

Предоставляет ли поисковая система Apache Solr приблизительные совпадения строк, например, по алгоритму Левенштейна?

Я ищу способ найти клиентов по фамилии. Но я не могу гарантировать правильность названий. Как настроить Solr так, чтобы он нашел человека «Левенштейн», даже если я ищу «Левенштейн»?

Ответы [ 2 ]

16 голосов
/ 18 ноября 2009

Обычно это делается с помощью SpellCheckComponent , который по умолчанию использует Lucene SpellChecker , который реализует Левенштейна.

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

Или вы можете просто использовать оператор нечеткого поиска Люсена .

Другой вариант - использование фонетического фильтра вместо Левенштейна.

3 голосов
/ 02 декабря 2009

Отличный ответ от Маурисио, мое единственное добавление "дешево" - это просто добавить символ ~ ко всем терминам, которые вы хотите добавить к нечеткому совпадению на пути к решению. Если вы используете настройку по умолчанию, это даст вам нечеткое совпадение.

...