我正在使用SOLR 5.5.0,并注意到关于得分的不受欢迎的行为。
搜索索引是针对persons的,其字段为givenName和surName。我将givenName的权重略高于surName,但对于某些查询,来自surName的命中结果的权重高于来自givenName的命中结果。这是由于idf加权造成的。
例如,考虑搜索字符串"James“。至于我对givenName的权重高于surName,我预计givenName "James“的点击量会排在结果的首位,surName "James”的点击量排名较低。但是,如果有1000个人使用givenName "James",而只有10个人使用surName "James",则由于idf,后一组将被给予最高分。
有没有办法在solr中禁用idf?我所能找到的就是一些关于重写DefaultSimilarity的东西,但是我不知道如何使用我的xml配置来做到这一点,而且这个类在lucene-5.5.0中也被弃用了。
发布于 2016-09-10 10:21:36
您可能并不是真的想禁用idf,因为搜索James Garfield不会认识到"Garfield“比" James”更稀有,因此单独搜索应该比James得分更高。
我认为您所要求的是两个字段之间的组合idf。实现这一点的最简单方法是创建第三个用于搜索的fullName字段。
在您的示例中,fullName中"James“的文档频率是1010,无论givenName=James还是surName=James,匹配的分数都是相等的。
https://stackoverflow.com/questions/36938149
复制相似问题