#solr
#solr
Вопрос:
Я создаю поисковую систему с помощью SOLR, и когда пользователь выполняет поиск по фразе, такой как «apple», я получаю такие результаты, как:
Детское питание, Apple… apple, raw
Я хочу, чтобы «apple, raw» отображалось перед «babyfood, apple», потому что слово apple отображается впереди. Есть ли способ сделать это с помощью SOLR? Чтобы дать больше баллов тем результатам, где поисковый запрос больше отображается впереди?
Комментарии:
1. Почему Solr возвращает «Babyfood», если вы ищете Apple? вы используете синонимы? Итак, вопрос в том, как «де-повысить» синонимы?! Не могли бы вы, пожалуйста, опубликовать часть schema.xml — определение типа fieldtype, частью которого является «apple»? Что-то вроде ibm.com/developerworks/java/library/j-solr1 <- Листинг 3
Ответ №1:
попробуйте q =(поле: яблоко *) ^ 2 ИЛИ поле: яблоко
где field — это имя поля, по которому выполняется поиск
Комментарии:
1. Ваш ответ относится к содержанию термина (apple), а не к положению термина — он не отвечает на вопрос.
2. в качестве примера здесь приведен термин Apple, и решение изначально повышает результаты с помощью apple. Однако результаты будут зависеть от типа анализаторов, используемых для поля.
3. Вопрос заключается в том, как повысить на основе позиции , а не конкретных значений термина. Итак, если у нас есть банан в позиции 1, работает ли ваш ответ — нет. Пожалуйста, проведите некоторое исследование и посмотрите, сможете ли вы улучшить ответ.