Boost Solr results based on the field that contained the hit

Posted by TomFor on Stack Overflow See other posts from Stack Overflow or by TomFor
Published on 2010-03-11T14:11:38Z Indexed on 2010/03/11 19:29 UTC
Read the original article Hit count: 590

Filed under:
|
|
|
|

Hi,

I was browsing the web looking for a indexing and search framework and stumbled upon Solr. A functionality that we abolutely need is to boost results based on what field contained the hit.

A small example:

Consider a record like this:

<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>

I want to combine for example the title, alternative_title and plot fields into one search field, which isn't too difficult after looking at the Solr/Lucene documentation and tutorials. However I also want that movies that have a hit in title have a higher score than hits on alternative_title and those in their turn should score higher than hits in the plot field. Is there any way to indicate this kond of scoring in the xml or do we need to develop some custom scoring algorythm? Please also note that the example I've givnen is fictional end the real data will probably contain 100+ fields.

Thanks in advance, Tom

© Stack Overflow or respective owner

Related posts about solr

Related posts about lucene