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 關注
- 117 瀏覽
添加回答
舉報