第一步安装Elasticsearch
1. 下载tar包,进行解压
第二部安装pip
1. 到下载的包:用python setup.py install 进行编译
2. 然后配置环境变量(变量环境为python下的scripts):C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\Scripts
第三步查看pii是否安装成功:(配置完环境变量之后需要重启,才能生效)
pip list
Package Version
---------- -------
pip 19.0.3
setuptools 40.6.2
第四步使用pip 安装elasticsearch
pip install elasticsearch
第五步,在python中连接ES
1. 需要指定访问es的主机和端口号
2. 确定需要访问的索引 index
3. 确定doc_typey
通过访问 主机+端口号+index
示例: http://xx.xx.xx.xx9200/hi_camera_info
```{
"hi_camera_info":{
"aliases":{
},
"mappings":{
"info":
```
doc_type 就是mappings中对应的info
```
1.
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts="xx.xx.xx.xx# 指定主机", port=9200 # 指定端口, timeout=200)
query = {
"from": 0,
"size": 2
}
result = es.search(index="hi_camera_info", doc_type="info", body=query)
value1 = []
for value in result['hits']['hits']:
value1 += [value]
for value in value1:
print(value['_source'])
```
采用pyton 查询Elasticsearch并导出所有的数据到Excel中.
[link](https://blog.csdn.net/fwj_ntu/article/details/87863788)
案例:
```
import csv
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts="xx.xx.xx.xx", port=9200, timeout=200)
# 1. 先借助游标,将所有结果数据存储到内存中
# 2. 然后将内存中的结果数据写入到磁盘,也就是文件中
query1 = {
"size": 100
}
query = es.search(index="hi_camera_info", doc_type="info", scroll='5m', body=query1)
value = query["hits"]["hits"]
# es查询出的结果第一页
results = query['hits']['hits']
# es查询出的结果总量
total = query['hits']['total']
# 游标用于输出es查询出的所有结果
scroll_id = query['_scroll_id']
# 在发送查询请求的时候,就告诉ES需要使用游标,并定义每次返回数据量的大小
# 定义一个list变量results用来存储数据结果,在代码中,可以另其为空list,即results=[],也可以先将返回结果
# 的第一页存尽进来, 即results = query['hits']['hits']
# 对于所有二级果数据写个分页加载到内存变量的循环
for i in range(0, int(total / 100) + 1):
# scroll参数必须制定否则会报错
query_scroll = es.scroll(scroll_id=scroll_id, scroll="5m")['hits']['hits']
results += query_scroll
with open("D://ml/data.csv", 'w', newline='', encoding="gbk") as flow:
# 获取_source 下的所有字段名
names = results[0]['_source'].keys()
csv_writer = csv.writer(flow)
csv_writer.writerow(names)
for res in results:
csv_writer.writerow(res['_source'].values())
print("done!")
```
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。