分布式全文检索引擎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用fork来创建子进程注意事项
Jul 03 Python
python实现从ftp服务器下载文件的方法
Apr 30 Python
python获取目录下所有文件的方法
Jun 01 Python
Python中的条件判断语句基础学习教程
Feb 07 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
Python实现简单网页图片抓取完整代码实例
Dec 15 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
FFrpc python客户端lib使用解析
Aug 24 Python
python上下文管理的使用场景实例讲解
Mar 03 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 Python
python中__slots__节约内存的具体做法
Jul 04 Python
python中的3种定义类方法
Nov 27 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版(3)
2006/10/09 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
Pycharm github配置实现过程图解
2020/10/13 Python
Python类型转换的魔术方法详解
2020/12/23 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
物业管理专业个人的自我评价
2013/11/19 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
社会学专业求职信
2014/02/24 职场文书
大学生安全责任书
2014/07/25 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
企业宣传稿范文
2015/07/23 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS