分布式全文检索引擎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爬虫之爬虫编写全记录
Nov 06 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
利用Python开发微信支付的注意事项
Aug 19 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
pytorch训练imagenet分类的方法
Jul 27 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
Python是怎样处理json模块的
Jul 16 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
Django配置跨域并开发测试接口
Nov 04 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获取一定范围内取N个不重复的随机数
2016/05/28 PHP
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python文档生成工具pydoc使用介绍
2015/06/02 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
军训自我鉴定
2013/12/14 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
企业活动策划方案
2014/06/02 职场文书
基层工作经验证明样本
2014/11/16 职场文书
民主评议党员个人总结
2015/02/13 职场文书
应届毕业生自荐信
2015/03/04 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏