1 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
我懷疑您是否可以使用純彈性搜索查詢獲得所需的輸出。
我要做的是有一個(gè) python 腳本,它能夠以編程方式更改正在搜索的向量。然后根據(jù)響應(yīng)的大小,您可能需要使用 Scan API 來返回所有匹配項(xiàng),您的最終查詢看起來像這樣
"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 和所有匹配項(xiàng)之間的匹配向量數(shù)
您是否有理由不使用圖形數(shù)據(jù)庫?使用圖形數(shù)據(jù)庫可以更輕松、更快速地找到這些關(guān)系。
如果您必須使用功能分?jǐn)?shù),我會(huì)將其添加到上面的查詢中。
它應(yīng)該做的是為每個(gè)匹配的文檔添加一個(gè)權(quán)重,但是我相當(dāng)肯定它會(huì)添加查詢本身將在對(duì)文檔進(jìn)行評(píng)分方面做得很好
"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 關(guān)注
- 110 瀏覽
添加回答
舉報(bào)