我在OpenDistroElasticSearch7.8.0版本中使用“cosinesimil”作为knn.space\u类型。我为3个属性类型为knn\u vector的文档编制了索引(除了knn\u vector之外提供的唯一其他属性是值为1的状态项)。这些文档的3个载体分别是(2,2),(2,1)和(2,3)。
令人惊讶的是,当我使用查询搜索向量(1,1)[使用status=1的post filter]时:
{
"size": 1,
"query": {
"knn": {
"embedding": {
"vector": [1, 1],
"k": 1
}
}
},
"post_filter": {
"term": {"status": 1}
}
}
每次执行查询时,我都会得到不同的回调向量。有时,我得到向量(2,1)为0.5的doc,而有时我得到向量(2,2)为1.0的doc。
问题:
为什么在执行同一个查询时会得到不同的回调向量?
为什么elasticsearch中向量为(2,1)的doc的∗得分为0.5。只有cosinesimil应该影响得分,cosinesimil在(2,1)和(1,1)之间大约是0.95?
当使用相同的es查询,knn参数k=3和size=3,并执行多次时…有时我得到的doc(2,1)的分数为0.5,有时我得到的分数为0.95(实际cosibil)。
暂无答案!
目前还没有任何答案,快来回答吧!