2010-03-11 5 views
13

Я просматривал веб-страницы, просматривая структуру индексирования и поиска и наткнулся на Solr. Функциональность, которая нам абсолютно необходима, заключается в том, чтобы повысить результаты, основанные на том, какое поле содержало хит.Результаты Boost Solr основаны на полевых условиях, которые содержат хитов

Небольшой пример:

Рассмотрим запись так:

<movie> 
    <title>The Dark Knight</title> 
    <alternative_title>Batman Begins 2</alternative_title> 
    <year>2008</year> 
    <director>Christopher Nolan</director> 
    <plot>Batman, Gordon and Harvey Dent are forced to deal with the chaos unleashed by an anarchist mastermind known only as the Joker, as it drives each of them to their limits.</plot> 
</movie> 

Я хочу объединить, например, название, alternative_title и участок поля в одно поле поиска, которое не является слишком сложным после глядя на документацию и учебные пособия Solr/Lucene. Тем не менее, я также хочу, чтобы фильмы, имеющие хит в заголовке, имели более высокий балл, чем хиты альтернативного файла, а те, которые в свою очередь, должны оценивать больше, чем попадания в поле сюжета. Есть ли способ указать этот вид подсчета в xml или нам нужно разработать какой-то собственный алгоритм подсчета очков?

Также обратите внимание, что приведенный мною пример является вымышленным, а реальные данные, вероятно, содержат более 100 полей.

Спасибо заранее,

Том

ответ

1

Если это функциональность, которая не является специфичным для одного поиска, но и весь сайт. Вы можете увеличить заголовок во время индексации. Boosting дает поле более высокий балл релевантности, который звучит точно, что вы хотите.

Проверить эту ссылку:

http://wiki.apache.org/solr/UpdateXmlMessages#Optional_attributes_for_.22field.22

6

Я не использовал Solr, но я использовал Lucene. Глядя на:

http://wiki.apache.org/solr/SolrQuerySyntax

Он утверждает, что синтаксис запроса в Solr является надстройкой Lucene годов. И в Lucene, как можно выполнить за поле подталкивания является использование оператора моркови с последующим некоторой произвольной величиной, т.е.

title:batman^10 alternative_title:batman

Преимуществом делать это в запросе время является то, что вы можете настроить повысить ценность «на лету», чтобы соответствовать любому стандарту релевантности, который у вас есть. Поэтому, если значение повышения 10 слишком велико, вы можете соответствующим образом настроить его.

11

Это то, на что предназначался DismaxQueryParser от Solr. См. http://wiki.apache.org/solr/DisMaxRequestHandler

Существует множество параметров, но основной настройкой является «qf», в котором указывается, какие поля должны быть просмотрены, а также для каждого из них. Так что если вы хотите, чтобы доминировать в заголовке, можно указать, что-то вроде:

титул^10 alternative_title^2^1 директор участок^1

в качестве значения параметра QF. Вы можете настроить это, настроив пример конфигурации и эксперимент оттуда.

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

  • Нет связанных вопросов^_^