Hi
FuzzyQuery/MultiTermQuery and I don't see any way to "boost" exact
matches, or even to incorporate the edit distance more generally into
the per-term score, although it does seem like that would be something
people would generally expect.

Actually it does this:

 * By default FuzzyQuery uses a rewrite method that expands all terms
   as should clauses into a boolean query:
   MultiTermQuery.TopTermsBlendedFreqScoringRewrite(maxExpansions)
 * TopTermsReqrite basically keeps track of a "boost" factor for each
   term and sorts the "best" terms in a PQ:
   
https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/search/TopTermsRewrite.java#L109-L160
 * For each collected term the term enumeration sets a boost (1.0 for
   exact match):
   
https://github.com/apache/lucene/blob/dd4e8b82d711b8f665e91f0d74f159ef1e63939f/lucene/core/src/java/org/apache/lucene/search/FuzzyTermsEnum.java#L248-L256

So in short the exact term gets a boost factor of 1 in the resulting term query, all other terms a lower one.

Uwe

--
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail:u...@thetaphi.de

Reply via email to