分布式全文检索引擎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之有容乃大的list(3)
Sep 15 Python
浅谈Python 的枚举 Enum
Jun 12 Python
python 设置文件编码格式的实现方法
Dec 21 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
django 解决自定义序列化返回处理数据为null的问题
May 20 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 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中Collection 类的设计
2013/06/21 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
javascript 一些用法小结
2009/09/11 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
围观tangram js库
2010/12/28 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
python在不同层级目录import模块的方法
2016/01/31 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python3爬虫全国地址信息
2019/01/05 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
前端实现打印图像功能
2019/08/27 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
广州盈通面试题
2015/12/05 面试题
恐龙的灭绝教学反思
2014/02/12 职场文书
环保建议书300字
2014/05/14 职场文书
党支部半年考察意见
2015/06/01 职场文书
借钱欠条怎么写
2015/07/03 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL