SOLR: повышение на основе местоположения поискового запроса в поле

#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, работает ли ваш ответ — нет. Пожалуйста, проведите некоторое исследование и посмотрите, сможете ли вы улучшить ответ.