分布式全文检索引擎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的Django框架中生成CSV文件的方法
Jul 22 Python
深入理解Python中字典的键的使用
Aug 19 Python
Django视图和URL配置详解
Jan 31 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
python实现简单登陆系统
Oct 18 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
利用nohup来开启python文件的方法
Jan 14 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
Python中Yield的基本用法
Oct 18 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
python3操作redis实现List列表实例
Aug 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实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
Python实现求数列和的方法示例
2018/01/12 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
Python 合并拼接字符串的方法
2020/07/28 Python
详解python datetime模块
2020/08/17 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
英文自荐信格式
2013/11/28 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
大学毕业感言50字
2014/02/07 职场文书
读书活动实施方案
2014/03/10 职场文书
房屋出租协议书
2014/04/10 职场文书
班主任对学生的评语
2014/04/26 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL