【发布时间】:2020-06-18 01:54:03
【问题描述】:
我对单元测试数据进行了简单查询,结果按预期顺序返回。查询是
+(ancestors:wood name:wood) +(ancestors:screw name:screw)
数据和分数是:
- 第一个文档(分数 0.9944593)
- 名称:木螺钉
- 祖先:螺丝和紧固件
- 第二个文档(分数 0.7294933)
- 名称:木塞
- 祖先:螺丝和紧固件
- 祖先:螺旋塞
- 第三个文档(分数 0.49740157)
- 名称:木螺钉
- 祖先:其他产品
如果我对生产数据(约 3000 个文档)进行相同的查询,我仍然会得到“唯一”相同的三个结果。但是文档分数改变了顺序。
- 第一个文档(分数 3.9986732)
- 名称:木螺钉
- 祖先:其他产品
- 第二个文档(分数 3.9986732)
- 名称:木螺钉
- 祖先:螺丝和紧固件
- 第三份文件(分数 3.7507305)
- 名称:木塞
- 祖先:螺丝和紧固件
- 祖先:螺旋塞
第二个顺序似乎是错误的。直觉上,我希望测试顺序被保留,因为文档 2 和 3 都匹配三个单词,而文档 1 只匹配两个。
前两个文档得分相同的事实也很奇怪。我还测试了 5 种其他相似性方法,它们都对前两个文档给出相同的分数。
我正在使用具有 BM25Similarity 和默认参数的 Lucene 8.5.2。
为什么当找到相同的文档时,Lucene 文档的“相对分数”会从单元测试中改变?我该如何改善这个评分问题?
【问题讨论】:
标签: lucene