繁体   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