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

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

使用python獲取ES索引中的所有文檔

使用python獲取ES索引中的所有文檔

冉冉說 2023-03-01 16:01:45
我正在嘗試將所有文檔保存在名為:news (44908 Document) 的 ES 索引中,并將它們保存在 DataFrame 中但是在運行腳本時,我只得到前十個文件。這是我的代碼:esClient = Elasticsearch()response = esClient.search(index = 'news',                                body = {},                                )#scrollId = response["_scroll_id"]#print(scrollId)esDocs = response["hits"]["hits"]fields = {}for num, doc in enumerate(esDocs):    sourceData = doc["_source"]        #response = esClient.scroll(scroll_id=scrollId, scroll = '1m')    #scrollId = response['_scroll_id']    #print(scrollId)        for key, val in sourceData.items():                if key == 'tags' or key == 'text' or key == 'title':                        try:                fields[key] = np.append(fields[key], val)            except KeyError:                fields[key] = np.array([val])        else:            continue;df = pd.DataFrame(fields)我嘗試使用.scroll()但沒有用。我仍然只得到 10 個第一個文件。我也嘗試指定size = number,但這不是我要找的......這是我的輸出數據框
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

如果您嘗試通過 pandas DataFrame API 訪問 Elasticsearch 索引,我建議您使用Eland。然后您不必將所有文檔都加載到內存中以對它們執行操作。

<披露:我是 Eland 的維護者并受雇于 Elastic>


查看完整回答
反對 回復 2023-03-01
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

您需要指定size,您要退回的文件數量

esClient.search(index = 'news', body = {'size': 44908})

但是文件太多了,它很可能會崩潰。


查看完整回答
反對 回復 2023-03-01
  • 2 回答
  • 0 關注
  • 355 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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