我试图为具有更多匹配词的记录赋予更高的分数,即使这些词出现在不同的字段中。
例如,搜索两个术语“ foo”和“ bar”将返回大量结果。最上面的结果在三个不同的字段中都有术语“ foo”,得分为3。在另一条记录中,在结果集的最下方,“ foo”出现在两个字段中,“ bar”出现在一个字段中,该记录也得分为3。
我想要的是将后者的记录得分更高,因为它匹配了更多的字词。
到目前为止,我一直在尝试通过更改相似性设置来做到这一点:我已经尝试过使用具有k1和b参数的各种值的BM25,以及具有各种lambda值和纯布尔相似性的LMJelinekMercer。
当我对一个或多个字段进行增强时,我可以立即看到得分的变化。但是到目前为止,我完全没有使用任何相似性设置来影响得分-这些记录中的每条得分为3,无论我设置了什么相似性,每个匹配项的出现得分为3。
基础搜索查询是一个布尔值,对“应该”部分中的各个字段具有多个通配符和正则表达式查询。
我认为正在发生的事情是,相似性设置分别应用于每个字段,但不适用于整个记录。我发生的另一种可能性是,我将以错误的方式应用设置-关闭索引,应用设置,打开索引,所有操作均无错误,当我获取索引的当前设置时,我看到我所做的任何更改都会反映在回报中。