分布式全文检索引擎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中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python创建xml的方法
Mar 10 Python
python遍历数组的方法小结
Apr 30 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
Python模块WSGI使用详解
Feb 02 Python
python实现顺时针打印矩阵
Mar 02 Python
python SVD压缩图像的实现代码
Nov 05 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
python实现低通滤波器代码
Feb 26 Python
使用python计算三角形的斜边例子
Apr 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 获取本机外网/公网IP的代码
2010/05/09 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
layui表格实现代码
2017/05/20 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
Django框架表单操作实例分析
2019/11/04 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
特步官方商城:Xtep
2017/03/21 全球购物
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
大学生应聘自荐信
2013/10/11 职场文书
建筑施工员岗位职责
2013/11/26 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
小学红领巾中秋节广播稿
2014/01/13 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
在职员工证明书
2014/09/19 职场文书
教师个人事迹材料
2014/12/17 职场文书
运动会闭幕词
2015/01/28 职场文书
爱国影片观后感
2015/06/18 职场文书