无论如何,我可以保证所有查询字词的文档总是高于查询字词较少的文档吗?
请注意,我不想坚持使用AND语义。如果没有任何文档符合所有查询字词,我仍然希望显示结果。
答案 0 :(得分:3)
如果这个因素(匹配所有查询字词)对您很重要,那么我建议您明确提升与所有查询字词匹配的文档,下面是一个将任何文档的分数再减半的示例与所有查询字词都不匹配。
例如:
@Override
public float coord(int overlap, int maxOverlap) {
return (overlap == maxOverlap)
? 1f
: 0.5f * super.coord(overlap, maxOverlap);
}
此因素在此处有更详细的描述:Lucene Similarity javadocs