MultiFieldQueryParser中的Boost因子

时间:2009-02-15 22:23:26

标签: lucene

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

非常感谢! 编

1 个答案:

答案 0 :(得分: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
);

至于最大提升,我不确定,但无论如何你不应该考虑绝对值的提升。只需使用有意义的提升比例。另请参阅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)