При включении stemming поиск корневого слова не дает результатов - PullRequest
0 голосов
/ 19 августа 2011

Я проиндексировал сайт с помощью solr.Это работает очень хорошо, если stemming не включен.Однако, используя stemming, solr не возвращает совпадений при поиске корня слова.Я использую шведский язык

Например, поиск support дает попадания, если не используется stemming.Используя stemming, поиск по support не дает результатов.Тем не менее, поиск supporten возвращает совпадения, которые соответствуют support.

. Отладив запрос, я вижу, что он переводит слово support в suppor (что, кстати, неверно, ноэто не должно иметь значения).Однако, имея слово в качестве suppor, я хочу, чтобы оно также находило совпадения с исходным словом запроса.

Буду признателен за любую помощь в этом!

Ответы [ 2 ]

0 голосов
/ 04 августа 2016

Обходной путь, который вы можете сделать, - переформатировать ваш запрос в «support support *» или «support support ~». * - это сопоставление по шаблону, а ~ - нечеткое сопоставление с использованием синтаксиса Lucene. Я знаю, что вы не упомянули о необходимости подстановочного и нечеткого поиска, но я обнаружил, что в этих обстоятельствах обработка запроса не вступит в силу, поэтому «поддержка» сохраняется. И остановка будет по-прежнему эффективна для первого слова, поэтому оба результата будут возвращены, если таковые имеются. Кроме того, нечеткий поиск поможет снизить допустимость опечаток в запросах пользователей, что является дополнительным преимуществом.

0 голосов
/ 21 декабря 2011

Афаик, нет никакого способа сохранить исходное слово при появлении ...

Я предполагаю, что вы используете solr.SnowballPorterFilterFactory.Алгоритм снежного кома слишком агрессивен.

Вы должны попробовать Стеммер Hunspell или, возможно, solr.SwedishLightStemFilterFactory.

...