介绍
介绍
今天我们学习如何通过Python操作Elasticsearch搜索引擎。学会使用Python操作Elasticsearch数据库之后,我们就可以使用Python制作拥有强大搜索功能的应用程序了。Elasticsearch的搜索功能要远远超过MySQL这样关系型数据库基于SQL语句实现的基本搜索功能。
在Python3.8下使用的是elasticsearch这个软件包,这个elasticsearch库的原生对象设计的还是非常简单的,相信大家一看就能够学会,那么就跟着福哥来学习它吧~~
安装
安装Elasticsearch
直接使用pip安装即可,目前支持的最新版本是6.8.2版本。
pip insall elasticsearch==6.8.2
教程
插入数据
向ES内插入一条数据
from elasticsearch import Elasticsearch # connect es = Elasticsearch(host="192.168.1.168",port=9200,timeout=60) # insert data = { "id":1, "label":"福哥".decode("gbk").encode("utf-8"), "dt":"2021-02-27 12:12:12" } es.index(index="test",doc_type="all_type",body=data)
查看数据
查看刚刚插入的数据
from elasticsearch import Elasticsearch # connect es = Elasticsearch(host="192.168.1.168",port=9200,timeout=60) # query query = { "query":{ "term":{ "id":1 } } } results = es.search(index="test",doc_type="all_type",body=query) print ("查询到:" + str(results['hits']['total']) + "结果") for result in results['hits']['hits']: id = result['_id'] data = result['_source'] print ("[" + id + "] " + str(data['id']) + "," + data['label'] + "," + data['dt'])
更新数据
修改一下刚刚插入的数据
from elasticsearch import Elasticsearch # connect es = Elasticsearch(host="192.168.1.168",port=9200,timeout=60) # update dataid = "7m4t5HcB-GtPtjsRaLCT" doc = { "id":1, "label":"同福".decode("gbk").encode("utf-8"), "dt":"2021-02-27 20:20:20" } data = { "doc":doc } es.update(index="test",doc_type="all_type",id=dataid,body=data)
删除数据
删除刚刚插入的数据
from elasticsearch import Elasticsearch # connect es = Elasticsearch(host="192.168.1.168",port=9200,timeout=60) # delete dataid = "7m4t5HcB-GtPtjsRaLCT" es.delete(index="test",doc_type="all_type",id=dataid)
全文搜索
现在福哥往test索引里面插入多条数据,然后对它们进行全文匹配搜索
from elasticsearch import Elasticsearch # connect es = Elasticsearch(host="192.168.2.168",port=9200,timeout=60) # query query = { "query":{ "bool":{ "must":[ {"match":{"label":{ "query": "福".decode("gbk").encode("utf-8") }}}, ] } } } results = es.search(index="test",doc_type="all_type",body=query) print ("查询到:" + str(results['hits']['total']) + "结果") for result in results['hits']['hits']: id = result['_id'] data = result['_source'] print ("[" + id + "] " + str(data['id']) + "," + data['label'] + "," + data['dt'])
总结
我们今天学习了Elasticsearch的操作的方法,大家会发现福哥在这里只是介绍了使用Python对Elasticsearch数据库进行基本的增、删、改、查操作的技巧,并没有讲述Elasticsearch的复杂查询技巧,为什么呢?
因为福哥会在后面开发搜索引擎项目的时候,一点一点地教大家怎么玩转Elasticsearch的。