亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于 Elasticsearch 架構和查詢的問題

關于 Elasticsearch 架構和查詢的問題

Go
哆啦的時光機 2022-11-02 10:10:06
我正在建立一個 Elasticsearch 集群來搜索與一個 id 關聯的向量。例如,鑒于此數據:Parent id / Object id / vectorsP1 / BD / 123, 125, 235 ... 10304, 50305 P1 / DF / 125, 235, 240 ... 10305, 10306P1 / ED / 123, 235, 350 ... 10010, 10344... P2 / AB / 125, 535, 740 ... 9315, 10306P2 / VC / 133, 435, 350 ... 3010, 20344P2 / RF / 113, 353, 390 ... 10110, 30344...There are millions of parentshundreds of objects in a parent1000 vectors in an object所以基本上我想索引所有向量給定輸入 P999,通過找到最多的相似對象來從集群中搜索相似的父對象。(相似對象:至少 50 個向量匹配)這是我期望的示例結果Input:P999 / HH / xxx, xxx ...P999 / YH / xxx, xxx ...P999 / GJ / xxx, xxx ......Output:[result sorted desc] P20 has 60 similar objectsP4 has 45 similar objectsP501 has 41 similar objects...similar objects: at least 50 vector matches為了實現這一點,我需要好的架構存儲向量的查詢按降序搜索相似對象列表的查詢我需要這三個方面的幫助。
查看完整描述

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

        }


查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號