2011-02-10 2 views
4

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

В файле schema.xml у меня есть поле под названием «текст», содержащее два других поля поиска («название» и «описание», реализованные через copyField), каждый с его коэффициентом усиления (определенный в smack SearchHandler в файле solrconfig.xml) , В этом поле есть фильтр solr.PhoneticFilterFactory с DoubleMetaphone на анализаторах «индекс» и «запрос». Как я понимаю, в запрос и индекс добавляются фонетические вариации каждого слова.

Мой вопрос в том, как я могу сказать solr, чтобы дать отдельный коэффициент форсирования (например, 0,3) для фонетических вариаций?

ответ

5

Одним из возможных решений является создание еще двух полей: предположим, что ваши исходные поля называются «title» и «description». Создайте «title_phonetic» и «description_phonetic» copy_fields и добавьте только фонетические вариации к этим полям. Затем используйте парсерный анализатор, чтобы дать разные повышения для этих полей.

+0

это похоже на работу, спасибо! –

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