看前提示
- python 模块 elasticsearch 有版本问题,我使用的是8.1.2版本。如有接口报错请对模块进行升级\降级。
- 适合0 Elasticearch 基础的选手,入门、练习观看。
- 适合想使用Python API 操作ES 的选手。
- Elasticsearch部署教程在这里
- Elasticsearch+Python 入门使用(2)
目录
数据准备
如果没有ES基础可以按照我的代码来进行数据准备:
# 导入模块 from elasticsearch import Elasticsearch # 连接es es = Elasticsearch( hosts='http://你ES的ip地址:9200', )# 创建并映射索引 mappings = { "properties":{ "title": { "type": "text", "index": "true" }, "type": { "type": "keyword", "index": "true" }, "uuId": { "type":'keyword', "index": "true" }, "url": { "type":'keyword', "index": "false" } } } response = es.indices.create(index='web',mappings=mappings)# 插入数据 es.index(index="web",id=1,document={"title":"天天搜题","type":"网站","uuId":1,"url":"http://tiantiansouti.com/"}) es.index(index="web",id=2,document={"title":"天天嗨害嗨","type":"网站","uuId":2,"url":"http://tiantiansouti.com/"}) es.index(index="web",id=3,document={"title":"不搜搜题","type":"扯犊子","uuId":3,"url":"http://tiantiansouti.com/"}) es.index(index="web",id=4,document={"title":"天天不搜","type":"摆烂","uuId":4,"url":"http://tiantiansouti.com/"}) es.index(index="web",id=5,document={"title":"冬冬搜题","type":"嘿嘿嘿","uuId":5,"url":"http://tiantiansouti.com/"})
一、环境下载
python 模块 elasticsearch 下载
pip install elasticsearch
二、操作实践
导入模块
from elasticsearch import Elasticsearch
连接 elasticsearch
es = Elasticsearch( hosts='http://1.13.194.58:9200' )
2.1 索引
2.2.1 创建索引
ES:
# 数据准备好的这个可以忽略 作用是创建索引 因为我们已经有了所以这个会报错 跳过就可 PUT请求 http://ip:9200/web
Python:
# response 可以接收到ES的返回信息方便查看之后的代码基本都会有可以忽略 response = es.indices.create(index='web')
2.2.2 查看索引
ES:
# 查看web单个索引 GET请求 http://ip:9200/web # 查看所有索引 GET请求 http://ip:9200/_cat/indices?v
Python:
# 查看web单个索引 response = es.indices.get(index='web') # 查看所有索引 response = es.indices.get(index='*')
2.2.3 删除索引
ES:
# 索引会被删除,操作结束后需要再次经行数据准备 DELETE请求 http://ip:9200/web
Python:
# 索引会被删除,操作结束后需要再次经行数据准备 response = es.indices.delete(index="web")
2.2 数据基本增删改查
2.2.1 添加数据
ES:
# 创建一个标题(title)为天天搜题,类型(type)为网站,地址(url)为http://tiantiansouti.com/的数据 POST请求 http://ip:9200/web/_doc body内容为 { "title": "天天搜题", "type": "网站", "url": "http://tiantiansouti.com/" } # 指定数据id为520 POST请求 http://ip:9200/web/_doc/520 body同上保持不变
Python:
# 创建一个标题(title)为天天搜题,类型(type)为网站,地址(url)为http://tiantiansouti.com/的数据 response = es.index(index="web",document={"title":"天天搜题","type":"网站", "url":"http://tiantiansouti.com/" }) # 指定数据id为520 response = es.index(index="web",id=520,document={"title":"天天搜题", "type":"网站", "url":"http://tiantiansouti.com/" })
2.2.2 查询数据
ES:
# 查询上面我们创建的id为520的数据 GET请求 http://ip:9200/web/_doc/520 # 查询所有数据 GET请求 http://ip:9200/web/_search
Python:
# 查询上面我们创建的id为520的数据 (最新版本查询方式) query={ "term":{ "_id":520 } } response = es.search(index='web',query=query) # 查询所有数据 query = { "match_all":{} } response = es.search(index='web',query=query)
2.2.3 数据修改
ES:
# 将id=520的数据标题更新为天天快乐 POST请求 http://ip:9200/web/_update/520 body内容为 { "doc": { "title": "天天快乐" } }
Python:
# 将id=520的数据标题更新为天天快乐 doc={ "title":"天天快乐" } response = es.update(index="web",id=520,doc=doc)
2.2.4 数据删除
ES:
# 删除id为520的数据 DELETE请求 http://ip:9200/web/_doc/520
Python:
# 删除id为520的数据 response = es.delete(index="web",id=520)
三、总结
ES搜索引擎的高效率毋庸置疑,希望喜欢Python语言的小伙伴们不要因为资料少就放弃,我会持续更新这个系列。加油!一起努力!