分布式全文检索引擎ElasticSearch原理及使用实例
一什么是ElasticSearch
Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎ApacheLucene(TM)基础上的搜索引擎.当然Elasticsearch并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
- 可实现亿级数据实时查询
- 实时分析的分布式搜索引擎。
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
二安装(windows下)
安装包下载地址
注意:Elasticsearch是用Java开发的,最新版本的Elasticsearch需要安装jdk1.8以上的环境
安装包下载完,解压,进入到bin目录,启动elasticsearch.bat即可
三python操作ElasticSearch
#-*-coding:utf-8-*- fromelasticsearchimportElasticsearch obj=Elasticsearch() #创建索引(Index) result=obj.indices.create(index='user',body={"userid":'1','username':'sui'},ignore=400) #print(result) #删除索引 #result=obj.indices.delete(index='user',ignore=[400,404]) #插入数据 #data={'userid':'1','username':'sui','password':'123'} #result=obj.create(index='news',doc_type='politics',id=1,body=data) #print(result) #更新数据 ''' 不用doc包裹会报错 ActionRequestValidationException[ValidationFailed:1:scriptordocismissing ''' #data={'doc':{'userid':'1','username':'lqz','password':'123ee','test':'test'}} #result=obj.update(index='news',doc_type='politics',body=data,id=1) #print(result) #删除数据 #result=obj.delete(index='news',doc_type='politics',id=1) #查询 #查找所有文档 query={'query':{'match_all':{}}} #查找名字叫做jack的所有文档 #query={'query':{'term':{'username':'lqz'}}} #查找年龄大于11的所有文档 #query={'query':{'range':{'age':{'gt':11}}}} allDoc=obj.search(index='news',doc_type='politics',body=query) print(allDoc['hits']['hits'][0]['_source'])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。