分布式全文检索引擎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操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
python中异常报错处理方法汇总
Nov 20 Python
基于python神经卷积网络的人脸识别
May 24 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
python计算导数并绘图的实例
Feb 29 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 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
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python中with用法讲解
2020/02/07 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
EJB的几种类型
2012/08/15 面试题
shell的种类有哪些
2015/04/15 面试题
《湘夫人》教学反思
2014/02/21 职场文书
我的小天地教学反思
2014/04/30 职场文书
国际会计专业求职信
2014/08/04 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
大连星海广场导游词
2015/02/10 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
进行数据处理的6个 Python 代码块分享
2022/04/06 Python