分布式全文检索引擎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 当前全局变量和入口参数的所有属性
Jul 01 Python
python调用java的Webservice示例
Mar 10 Python
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
详解在Python中处理异常的教程
May 24 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 Python
python通过tcp发送xml报文的方法
Dec 28 Python
利用nohup来开启python文件的方法
Jan 14 Python
Python实现中值滤波去噪方式
Dec 18 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 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支付宝在线支付接口开发教程
2016/09/19 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Python运算符重载详解及实例代码
2017/03/07 Python
基于python生成器封装的协程类
2019/03/20 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python代码注释规范代码实例解析
2020/08/14 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
领导班子四风问题对照检查材料
2014/09/27 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
2015年电工工作总结
2015/04/10 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
python标准库ElementTree处理xml
2022/05/20 Python