第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Elasticsearch 中對(duì)術(shù)語(yǔ)聚合結(jié)果進(jìn)行分頁(yè)

如何在 Elasticsearch 中對(duì)術(shù)語(yǔ)聚合結(jié)果進(jìn)行分頁(yè)

HUX布斯 2023-08-08 16:45:57
我一直在嘗試找出一種方法來(lái)對(duì) Elasticsearch 中的術(shù)語(yǔ)聚合結(jié)果進(jìn)行分頁(yè),但到目前為止我還無(wú)法達(dá)到預(yù)期的結(jié)果。這是我試圖解決的問(wèn)題。在我的索引中,我有一堆文檔,它們的分?jǐn)?shù)(與 ES _score 分開(kāi))是根據(jù)文檔中其他字段的值計(jì)算的。每個(gè)文檔“屬于”一個(gè)客戶,由customer_id字段引用。該文檔還有一個(gè) id,由doc_id字段引用,與 ES 元字段_id相同。這是一個(gè)例子。{ '_id': '1', 'doc_id': '1', 'doc_score': '85', 'customer_id': '123'}對(duì)于每個(gè)customer_id都有多個(gè)文檔,所有文檔都有不同的文檔 id 和不同的分?jǐn)?shù)。我想要做的是,給定客戶 ID 列表,返回每個(gè) customer_id 的頂級(jí)文檔(每個(gè)客戶僅 1 個(gè)),并能夠通過(guò)常規(guī) ES 搜索 API 中的方法對(duì)類似于size的結(jié)果進(jìn)行分頁(yè)。我想要用于文檔分?jǐn)?shù)的字段是doc_score字段。到目前為止,在我當(dāng)前的Python腳本中,我嘗試過(guò)使用具有“熱門(mén)命中”聚合的嵌套 aggs 來(lái)僅獲取每個(gè)客戶的頂級(jí)文檔。{ "size": 0, "query:": {  "bool": {   "must": [    {     "match_all": {}    },    {     "terms": {      "customer_id": customer_ids # a list of the customer ids I want documents for     }    },    {     "exists": {      "field": "score" # sometimes it's possible a document does not have a score     }    }   ]  } } "aggs": {  "customers": {   "terms" : {    {"field": "customer_id", "min_doc_count": 1},    "aggs": {     "top_documents": {      "top_hits": {       "sort": [        {"score": {"order": "desc"}}       ],       "size": 1      }     }    }   }  } }}然后,我通過(guò)遍歷每個(gè)客戶存儲(chǔ)桶來(lái)“分頁(yè)”,將頂部文檔 blob 附加到列表中,然后根據(jù)分?jǐn)?shù)字段的值對(duì)列表進(jìn)行排序,最后獲取切片documents_list[from:from+size]。問(wèn)題是,假設(shè)我的列表中有 500 個(gè)客戶,但我只想要第二個(gè) 20 個(gè)文檔,即size = 20, from=20。因此,每次調(diào)用該函數(shù)時(shí),我都必須首先獲取 500 個(gè)客戶中每個(gè)客戶的列表,然后進(jìn)行切片。這聽(tīng)起來(lái)效率很低,而且也是一個(gè)速度問(wèn)題,因?yàn)槲倚枰摵瘮?shù)盡可能快。理想情況下,我可以直接從 ES 獲取第二個(gè) 20,而無(wú)需在函數(shù)中進(jìn)行任何切片。我已經(jīng)研究了 ES 提供的復(fù)合聚合,但在我看來(lái),我無(wú)法在我的情況下使用它,因?yàn)槲倚枰@取整個(gè)文檔,即常規(guī)搜索 API 響應(yīng)中 _source 字段中的所有內(nèi)容。我將非常感謝任何建議。
查看完整描述

1 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

最好的方法是使用分區(qū)


根據(jù)文檔:


GET /_search

{

? ?"size": 0,

? ?"aggs": {

? ? ? "expired_sessions": {

? ? ? ? ?"terms": {

? ? ? ? ? ? "field": "account_id",

? ? ? ? ? ? "include": {

? ? ? ? ? ? ? ?"partition": 1,

? ? ? ? ? ? ? ?"num_partitions": 25

? ? ? ? ? ? },

? ? ? ? ? ? "size": 20,

? ? ? ? ? ? "order": {

? ? ? ? ? ? ? ?"last_access": "asc"

? ? ? ? ? ? }

? ? ? ? ?},

? ? ? ? ?"aggs": {

? ? ? ? ? ? "last_access": {

? ? ? ? ? ? ? ?"max": {

? ? ? ? ? ? ? ? ? "field": "access_date"

? ? ? ? ? ? ? ?}

? ? ? ? ? ? }

? ? ? ? ?}

? ? ? }

? ?}

}


查看完整回答
反對(duì) 回復(fù) 2023-08-08
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)