Solr/Lucene Scorer

Posted by TFor on Stack Overflow See other posts from Stack Overflow or by TFor
Published on 2010-06-14T08:21:21Z Indexed on 2010/06/14 8:22 UTC
Read the original article Hit count: 279

Filed under:
|

We are currently working on a proof-of-concept for a client using Solr and have been able to configure all the features they want except the scoring.

Problem is that they want scores that make results fall in buckets:

  • Bucket 1: exact match on category (score = 4)
  • Bucket 2: exact match on name (score = 3)
  • Bucket 3: partial match on category (score = 2)
  • Bucket 4: partial match on name (score = 1)

First thing we did was develop a custom similarity class that would return the correct score depending on the field and an exact or partial match.

The only problem now is that when a document matches on both the category and name the scores are added together.

Example: searching for "restaurant" returns documents in the category restaurant that also have the word restaurant in their name and thus get a score of 5 (4+1) but they should only get 4.

I assume for this to work we would need to develop a custom Scorer class but we have no clue on how to incorporate this in Solr. Another option is to create a custom SortField implementation similar to the RandomSortField already present in Solr.

Maybe there is even a simpler solution that we don't know about.

All suggestions welcome!

© Stack Overflow or respective owner

Related posts about lucene

Related posts about solr