分布式全文检索引擎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 排列组合之itertools
Mar 20 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
利用python如何在前程无忧高效投递简历
May 07 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
django中使用事务及接入支付宝支付功能
Sep 15 Python
Python hashlib模块实例使用详解
Dec 24 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 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 程序员的调试技术小结
2009/11/15 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
如何更优雅地写python代码
2019/07/02 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
计算机科学系职业生涯规划书
2014/03/08 职场文书
旷工检讨书1000字
2015/01/01 职场文书
承诺书模板大全
2015/05/04 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python