分布式全文检索引擎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'])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。