分布式全文检索引擎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函数参数*args**kwargs用法实例
Dec 04 Python
浅析Python多线程下的变量问题
Apr 28 Python
Python多进程同步简单实现代码
Apr 27 Python
浅谈Python的文件类型
May 30 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
python制作图片缩略图
Apr 30 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
python挖矿算力测试程序详解
Jul 03 Python
Django中的模型类设计及展示示例详解
May 29 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 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 intval与mysql的int取值范围不同
2010/12/12 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
js 对象是否存在判断
2009/07/15 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
JS与C#编码解码
2013/12/03 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
JSONP跨域请求
2017/03/02 Javascript
ECMAScript6--解构
2017/03/30 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
wxpython绘制音频效果
2019/11/18 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
python ssh 执行shell命令的示例
2020/09/29 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
测量实习生自我鉴定
2013/09/19 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫