一、安装库
- 包名:elasticsearch
- 下载命令
- 普通版本:
python -m pip install elasticsearch
- 异步版本:
python -m pip install elasticsearch[async]
二、创建es对象
- Elasticsearch():实例化es对象
- host:IP地址
- port:端口号
- timeout:超时时间
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
二、创建索引
- es.indices.create():创建索引
- index:要新创建的索引
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
# 创建一个索引为test的索引
es.indices.create(index='test')
三、删除索引
- es.indices.delete():删除索引
- index:要删除的索引
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
# 删除索引为test的索引
es.indices.delete(index='test')
四、插入数据
- es.index():插入数据
- index:要插入数据的索引
- id:要插入数据的ID值
- body:要插入的数据(不提倡)
- document:要插入的数据(提倡)
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
# 在test索引id为1的位置插入一条数据
es.index(index='test',
id=1,
body={"id":'1',"name":"小明"})
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
doc = {
'name': '方天',
'age': '23'
}
# 在test索引id为2的位置插入一条数据
es.index(index='test', id='2', document=doc)
- es.create():插入数据,可以不指定id,create会自动添加id
- index:要插入数据的索引
- id:要插入数据的ID值
- body:要插入的数据(不提倡)
- document:要插入的数据(提倡)
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
doc = {
'name': '杨晨',
'age': '22'
}
# 在test索引id为3的位置插入一条数据
es.create(index='test',id='3', document=doc)
五、删除数据
- es.delete():删除指定数据
- index:要删除数据的索引
- id:要删除数据的id
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
# 删除test索引id为3的数据
es.delete(index='test',id='3',doc_type='_doc')
六、更新数据
- es.update():更新指定字段
- index:要更新的索引
- id:要更新的id
- doc:要更新的数据
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
doc = {
'name': '李邱俊',
'age': '20'
}
# 将test索引id为2的数据更新为新数据
es.update(index='test',id='2',doc=doc)
六、查询操作
- es.get():查询数据
- index:要查询数据的索引
- id:要查询数据的id
from elasticsearch import Elasticsearch
# 实例化一个ip为localhost,端口为9200,允许超时一小时的es对象
es = Elasticsearch(hosts="localhost",port=9200,timeout=3600)
# 查询test索引id为1的数据
es.get(index='test',id='1')