分布式全文检索引擎ElasticSearch原理及使用实例


Posted in Python onNovember 14, 2020

一 什么是 ElasticSearch

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 可实现亿级数据实时查询
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

二 安装(windows下)

安装包下载地址

注意:Elasticsearch是用Java开发的,最新版本的Elasticsearch需要安装jdk1.8以上的环境

安装包下载完,解压,进入到bin目录,启动 elasticsearch.bat 即可

三 python操作ElasticSearch

# -*- coding:utf-8 -*-

from elasticsearch import Elasticsearch

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[Validation Failed: 1: script or doc is missing
'''
# 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'])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多线程编程(一):threading模块综述
Apr 05 Python
利用Python破解斗地主残局详解
Jun 30 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
Tensorflow中的placeholder和feed_dict的使用
Jul 09 Python
使用tensorflow实现线性回归
Sep 08 Python
python2.7和NLTK安装详细教程
Sep 19 Python
Python饼状图的绘制实例
Jan 15 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
Python统计时间内的并发数代码实例
Dec 28 Python
Python ORM编程基础示例
Feb 02 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
Python对excel的基本操作方法
Feb 18 Python
Django websocket原理及功能实现代码
Nov 14 #Python
Pycharm常用快捷键总结及配置方法
Nov 14 #Python
Django model class Meta原理解析
Nov 14 #Python
详解python爬取弹幕与数据分析
Nov 14 #Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 #Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 #Python
基于Python的身份证验证识别和数据处理详解
Nov 14 #Python
You might like
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
thinkphp缓存技术详解
2014/12/09 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
python中Genarator函数用法分析
2015/04/08 Python
解析Python中while true的使用
2015/10/13 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
python的unittest测试类代码实例
2017/12/07 Python
Python面向对象之继承代码详解
2018/01/29 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
python树的同构学习笔记
2019/09/14 Python
jupyter notebook 多行输出实例
2020/04/09 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
新闻记者实习自我鉴定
2013/09/19 职场文书
小车司机岗位职责
2013/11/25 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
春节超市活动方案
2014/08/14 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android