我可以使用不同因素增加MultiFieldQueryParser中的不同字段吗? 另外,我可以为字段分配的最大提升因子值是多少?
非常感谢! 编
答案 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)