分布式全文检索引擎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脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
python编写简单爬虫资料汇总
Mar 22 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
python判断数字是否是超级素数幂
Sep 27 Python
对python 读取线的shp文件实例详解
Dec 22 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
python opencv实现简易画图板
Aug 27 Python
python 图像增强算法实现详解
Jan 24 Python
python百行代码实现汉服圈图片爬取
Nov 23 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
Mysql的常用命令
2006/10/09 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
PHP的自定义模板引擎
2017/03/24 PHP
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
js图片处理示例代码
2014/05/12 Javascript
jQuery链使用指南
2015/01/20 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
js实现tab选项卡切换功能
2017/01/13 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
python简单的函数定义和用法实例
2015/05/07 Python
Django框架中方法的访问和查找
2015/07/15 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Django框架models使用group by详解
2020/03/11 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Django通过json格式收集主机信息
2020/05/29 Python
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
企业总经理岗位职责
2014/02/13 职场文书
团日活动总结
2014/04/28 职场文书
经典毕业生求职信
2014/07/12 职场文书
2014年护士长工作总结
2014/11/11 职场文书
公司借条范本
2015/05/25 职场文书
在职证明范本
2015/06/15 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技