2013-08-02 2 views
2

В настоящее время я индексирую данные с помощью Solr, состоящего из примерно 10 полей. Когда я выполняю поиск, я бы хотел, чтобы определенные поля были взвешены выше. Может ли кто-нибудь помочь указать мне в правильном направлении?Solr: Как указать полевую релевантность/вес

Например, поиск по всем полям для термина, такого как «супермен», должен возвращать образы в поле «Title» перед полем «Description».

Я нашел документацию о том, как сделать один балл поля выше запроса, но я бы предпочел установить его в файле конфигурации или аналогичном. Следующее потребует, чтобы все поисковые запросы указывали вес. Можно ли указать это в файле solr config?

q=title:superman^2 description:superman 

ответ

3

попробуйте использовать qf with ExtendedDisMax запрос, то будет выглядеть так:

q=superman 

В то время как ваш конфиг будет выглядеть следующим образом:

<str name="qf">title^2 description</str> 

Вы можете получить некоторые рабочие примеры here

+0

Спасибо за помощь! Мне удалось успешно настроить парсер edismax и применить соответствующие веса - Спасибо за вашу помощь !!! –

0

Используя edismax, мы можем добиться того, что вы ищете.

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

<str name="defType"> edismax </str> 
<str name="qf"> YourField^50 YourAnotherField^30 YetAnotherField</str> 

Чем больше мощность (^), тем больше приоритетов получает это поле.

2

«Параметр QF представляет список полей, каждое из которых присваивается коэффициент наддува для увеличения или уменьшения значения этого конкретного поля в запросе, например, запрос ниже:.

QF =» fieldOne^2.3 fieldTwo fieldThree^0.4 "

Присваивает fieldOne повышение 2.3, оставляет поле Two с повышением по умолчанию (потому что не указан коэффициент форсирования), а fieldThree - 0,4. Эти факторы форсирования делают совпадения в fieldOne намного более значительными, чем совпадения в fieldTwo, которые, в свою очередь, намного более значительны, чем матчи в fieldThree. "

Источник: Lucidworks

В вашем случае: QF = «название^100 описания» может сделать трюк - если вы используете Solr в библиотеке, я хотел бы поговорить.