[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lucene-user
Subject:    Re: disable field length normalization on specific fields?
From:       Chris Hostetter <hossman_lucene () fucit ! org>
Date:       2016-03-28 22:19:21
Message-ID: alpine.DEB.2.11.1603281511390.4813 () tray
[Download RAW message or body]


yep, just use a customied similarity that doesn't include a length factor 
when computing the norm.

If you are currently using TFIDFSimilarity (or one of it's subclasses) 
then the computeNorm method delegates to a lengthNorm method, and you 
can override that to return "1" for fields with a certain name regardless 
of the length.

If you are currently using something else -- like BM25Similarity perhaps 
-- you'll probably have to override the computeNorm method and 
write a slightly longer calculation based on whatever logic is in the 
computeNorm method you are currently using -- look for usages of 
FieldInvertState.getLength() and remove/replace that with a fixed value.




: Date: Wed, 9 Mar 2016 13:23:16 -0500
: From: Matt Savona <matt.savona@gmail.com>
: Reply-To: java-user@lucene.apache.org
: To: java-user@lucene.apache.org
: Subject: disable field length normalization on specific fields?
: 
: Hi all,
: 
: I am trying to understand if the following is possible:
: 
: I would like to have several fields in my index which are boosted at index
: time. Because they are to be boosted at index time, their field type
: requires omitNorms(false).
: 
: However, I do not want field length normalization to affect the scoring of
: these fields. For example, finding the term 'baseball' (1:5 words) should
: score exactly the same as (1:100 words).
: 
: There are other fields in my index which are not boosted, so
: omitNorms(true) is acceptable on them. However, I do not want to broadly
: disable length normalization on every single field (I have at least one
: where I require it). Thus, I am not certain a custom Similarity class is
: appropriate.
: 
: Is it possible to simply disable length normalization on a a field-by-field
: basis, while still allowing index-time boosting?
: 
: Thank you in advance!
: 
: - Matt
: 

-Hoss
http://www.lucidworks.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic