MultiFieldQueryParser中的Boost因子

Ed.*_*Ed. 9 lucene

我可以使用不同的因素在MultiFieldQueryParser中提升不同的字段吗?另外,我可以为字段分配的最大提升因子值是多少?

万分感谢!埃德

its*_*dok 13

MultiFieldQueryParser有一个[constructor] [1]接受一个boost的地图.你用这样的东西:

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
);
Run Code Online (Sandbox Code Playgroud)

至于最大提升,我不确定,但你不应该考虑绝对值的提升.只需使用有意义的提升比例.另见这个问题.

[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)