Solr KNN查询解析器与函数查询的兼容性问题咨询
Solr KNN查询解析器与函数查询的兼容性问题咨询
大家好,我正在测试Solr的向量搜索功能(当前版本为0.9.4),发现在单独使用KNN查询解析器和将其嵌入函数查询中时,结果存在不一致的情况,想跟大家请教下相关问题。
我已经配置好向量字段,并且完成了文档的索引工作。
a) 基础KNN查询
运行下面这个简单的KNN查询时,结果完全符合预期:
q={!knn f=vector_field topK=3}[.. vector here ...]
我得到了3个按余弦相似度降序排列的结果。
b) KNN与函数查询结合
接下来我想把KNN搜索和函数查询结合起来,以此对部分文档做权重提升。为了简化测试,我只是把向量得分和常数1相乘:
q={!func}product(1,$subQuery)& subQuery={!knn f=vector_field topK=3}[.. vector here ...]
我原本以为会得到和之前一致的结果,但实际返回的却是随机文档,而且所有文档的得分都是0。下面是第一个匹配结果的解释语句:
0.0 = product(const(1),query(KnnFloatVectorQuery:vector_field[-0.080,...] 3],def=0.0)=0.0) 1.0 = boost
如果我调大topK的值,到某个临界点后,就会开始返回原本KNN查询应有的结果,并且得分也不为0了。
我没找到任何关于KNN解析器和函数查询兼容性的官方文档,有没有同学做过相关测试或者遇到过类似问题呢?
备注:内容来源于stack exchange,提问作者Duf59
相关产品推荐
相关产品推荐

