分布式全文检索引擎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简单实现两个任意字符串乘积的方法示例
Apr 12 Python
Php多进程实现代码
May 07 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
Python input函数使用实例解析
Nov 22 Python
pycharm部署、配置anaconda环境的教程
Mar 24 Python
Python中关于logging模块的学习笔记
Jun 03 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
django下创建多个app并设置urls方法
Aug 02 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 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/10/09 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
JS实现复制功能
2017/03/01 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
django基础学习之send_mail功能
2019/08/07 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
开办化妆品公司创业计划书
2013/12/26 职场文书
数学国培研修感言
2014/02/13 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
家访教师心得体会
2016/01/23 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
python基础之函数的定义和调用
2021/10/24 Python