一、安装库

  • 包名: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')