1 回答
TA贡献1951条经验 获得超3个赞
我怀疑您是否可以使用纯弹性搜索查询获得所需的输出。
我要做的是有一个 python 脚本,它能够以编程方式更改正在搜索的向量。然后根据响应的大小,您可能需要使用 Scan API 来返回所有匹配项,您的最终查询看起来像这样
"query" : {
"bool" : {
"should" : [
//THIS IS THE PART THAT YOU PROGRAMATICALLY FILL USING THE VECTORS FROM THE PARENT YOU SPECIFIED
{"match" : {"vector" : "111"}},
{"match" : {"vector" : "222"}},
{"match" : {"vector" : "333"}},
...
{"match" : {"vector" : "444"}},
],
"minimum_should_match": "50"
}
}
那么您将使用 python 确定 P999 和所有匹配项之间的匹配向量数
您是否有理由不使用图形数据库?使用图形数据库可以更轻松、更快速地找到这些关系。
如果您必须使用功能分数,我会将其添加到上面的查询中。
它应该做的是为每个匹配的文档添加一个权重,但是我相当肯定它会添加查询本身将在对文档进行评分方面做得很好
"function_score": {
"query": { "match_all": {} },
"boost": "5",
"functions": [
{
"filter": { "match": { "vector": "111" } },
"weight": 1
},
{
"filter": { "match": { "vector": "222" } },
"weight": 1
}
...
],
"max_boost": 1,
"score_mode": "max",
"boost_mode": "replace",
"min_score" : 0
}
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报