相关度排序这个东西顾名思义,在上文中我们讲到了一个打分的问题,就是说的在查询关键字匹配的时候,相识度越高的就会打分越高,就会越靠前。
打分的两个步骤:1.根据词计算词的权重。 2.根据词的权重打分。
词的权重:意思就是词的重要性,而且词就是我们上文讲到的term,
而影响词的权重的有两个东西:
TF:词在该文档中出现的频率
DF:词在多个文档中出现的频率
到了现在大家都应该知道了,TF越高,DF越低,打分就会越高。
但是以上都是自然打分的原则!!! 还有人为影响的编程。
设置boost值影响打分
boost 加权值 默认为 1f
在创建时设置过于简单,这里就不说了。
这是在搜索时修改
Map<String, Float> boosts = new HashMap<String, Float>();
boosts.put("name", 200f);
MultiFieldQueryParser parser = new MultiFieldQueryParser(fields,
analyzer, boosts);