Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boost factor in MultiFieldQueryParser

Tags:

lucene

Can I boost different fields in MultiFieldQueryParser with different factors? Also, what is the maximum boost factor value I can assign to a field?

Thanks a ton! Ed

like image 327
Ed. Avatar asked Feb 15 '09 22:02

Ed.


1 Answers

MultiFieldQueryParser has a [constructor][1] that accepts a map of boosts. You use it with something like this:

String[] fields = new String[] { "title", "keywords", "text" };
HashMap<String,Float> boosts = new HashMap<String,Float>();
boosts.put("title", 10);
boosts.put("keywords", 5);
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
    fields, 
    new StandardAnalyzer(),
    boosts
);

As for the maximum boost, I'm not sure, but you shouldn't think about boost in absolute terms anyway. Just use a ratio of boosts that makes sense. Also see this question.

[1]: https://lucene.apache.org/core/4_4_0/queryparser/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.html#MultiFieldQueryParser(org.apache.lucene.util.Version, java.lang.String[], org.apache.lucene.analysis.Analyzer, java.util.Map)

like image 90
itsadok Avatar answered Sep 23 '22 23:09

itsadok