簡體   English   中英

使用python從彈性搜索獲取數據表可視化

[英]Use python to get data table Visualization from elastic search

如何通過python在彈性搜索中過濾和匯總數據。 我通過Kibana界面手動創建了數據表可視化,並以.csv格式下載了它。 現在我想使用python做同樣的事情。

例如,如果索引中有10個變量: v1,v2,v3,.. v10則如何獲取數據表,該數據表可以在sql中描述為:

select v2, count(v2) 
from index 
where v1 = "some value" 
group by v2 

到現在為止,我可以執行以下操作:

from elasticsearch5 import Elasticsearch
user = 'xxx'
password = 'xxx'
url = 'xxx'
command = "%s:%s@%s:9200" % (user,password,url)
x = Elasticsearch(command)
# Get the count of documents
num = x.count(index='my_index')['count']
# Get documents filtered by v1
my_docs = x.search(index="my_index",  body={"query": {"match": {'v1':'US'}}})

現在,我要從my_docs中僅選擇變量v2 ,並按v2分組以獲得計數。 在不透露用戶憑據的情況下我不知道如何創建可復制示例的道歉。

  • 第一:我不想下載完整的文檔(實際數據中的每個文檔都包含150多個變量)。

如果您只想處理文檔中的少數幾個字段,則應在此處查詢doc之前使用_source filter 例如,僅從文檔中檢索v1v2字段:

body={
    "_source": ["v1", "v2"],"query": {"match": {'v1':'US'}}}
  • 第二:雖然我正在研究json,但我還不熟悉json。

您只需嘗試如下操作:

for result in mydocs['hits']['hits']:
    print result["_source"]['v1']
    print result["_source"]['v2']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM