How about creating another field for doing exact matches (a string);
searching both and boosting the string match?

-Mike 

> -----Original Message-----
> From: Imran [mailto:imranboho...@gmail.com] 
> Sent: Friday, October 29, 2010 6:25 AM
> To: solr-user@lucene.apache.org
> Subject: Influencing scores on values in multiValue fields
> 
> Hi All
> 
> We've got an index in which we have a multiValued field per document.
> 
> Assume the multivalue field values in each document to be;
> 
> Doc1:
> bar lifters
> 
> Doc2:
> truck tires
> back drops
> bar lifters
> 
> Doc 3:
> iron bar lifters
> 
> Doc 4:
> brass bar lifters
> iron bar lifters
> tire something
> truck something
> oil gas
> 
> Now when we search for 'bar lifters' the expectation (based on the
> requirements) is that we get results in the order of Doc1, 
> Doc 2, Doc4 and Doc3.
> Doc 1 - since there's an exact match (and only one) for the 
> search terms Doc 2 - since ther'e an exact match amongst the 
> values Doc 4 - since there's a partial match on the values 
> but the number of matches are more than Doc 3 Doc 3 - since 
> there's a partial match
> 
> However, the results come out as Doc1, Doc3, Doc2, Doc4. 
> Looking at the explaination of the result it appears Doc 2 is 
> loosing to Doc3 and Doc 4 is loosing to Doc3 based on length 
> normalisation.
> 
> We think we can see the reason for that - the field length in 
> doc2 is greater than doc3 and doc 4 is greater doc3.
> However, is there any mechanism I can force doc2 to beat doc3 
> and doc4 to beat doc3 with this structure.
> 
> We did look at using omitNorms=true, but that messes up the 
> scores for all docs. The result comes out as Doc4, Doc1, 
> Doc2, Doc3 (where Doc1, Doc2 and
> Doc3 gets the same score)
> This is because the fieldNorm is not taken into account anymore (as
> expected) and the termFrequence being the only contributing 
> factor. So trying to avoid length normalisation through 
> omitNorms is not helping.
> 
> Is there anyway where we can influence an exact match of a 
> value in a multiValue field to add on to the overall score 
> whilst keeping the lenght normalisation?
> 
> Hope that makes sense.
> 
> Cheers
> -- Imran
> 

Reply via email to