分布式全文检索引擎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标准库之多进程(multiprocessing包)介绍
Nov 25 Python
python使用Queue在多个子进程间交换数据的方法
Apr 18 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
python的变量与赋值详细分析
Nov 08 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
Python 依赖库太多了该如何管理
Nov 08 Python
python 遍历pd.Series的index和value
Nov 26 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
python Shapely使用指南详解
Feb 18 Python
Python加速程序运行的方法
Jul 29 Python
Python 随机按键模拟2小时
Dec 30 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日历程序
2006/12/06 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python如何生成树形图案
2018/01/03 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
Python json读写方式和字典相互转化
2020/04/18 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
幼儿园家长会邀请函
2014/01/15 职场文书
计算机专业职业生涯规划范文
2014/01/19 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
教师自我剖析材料
2014/09/29 职场文书
员工家属慰问信
2015/03/24 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python