2012-02-23 4 views
3

У меня проблема, когда у меня есть указатель на набор записей персонала. Полный текстовый индекс основан на имени и позиции лица.Solr индексирование, поиск stemming

Я могу найти такое имя, как «john» без проблем, и часть имени типа «anthon», и это работает.

Однако некоторые имена не будут искать правильно, например, «anthony» не возвращает никаких результатов, но «anth» возвращает все anthony's. Как мудрый поиск «carly» ничего не возвращает, но «автомобиль» делает.

+0

Пожалуйста, напишите свой schema.xml здесь – nikhil500

+0

Stemming не указывается для имен, почему бы просто не отключить его? –

ответ

2

Как отметил Маурико, Stemming не рекомендуется для имен Person.
Stemming принесет много неожиданных результатов по крайней мере для имен людей.

Кроме того, было бы интересно проверить ваш schema.xml и применяемый анализ полей.

Эта проблема может возникнуть, если вы используете различный анализ по индексу и времени запроса.

От http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers

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

Из примера, о котором вы указали, у вас, кажется, есть Stemmer в поле в индексное время, но, похоже, оно не существует при анализе времени запроса.

+0

Спасибо, стволовый был в индексе времени вместо времени запроса, которое фиксировало его – eli

Смежные вопросы