分布式全文检索引擎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的单元测试
Apr 28 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
pandas多级分组实现排序的方法
Apr 20 Python
Python操作mongodb的9个步骤
Jun 04 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
基于python操作ES实例详解
Nov 16 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
Python用tkinter实现自定义记事本的方法详解
Mar 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扩展函数
2006/10/09 PHP
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php类中private属性继承问题分析
2012/11/01 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python中处理unchecked未捕获异常实例
2015/01/17 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python实现事件驱动
2018/11/21 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
初一科学教学反思
2014/01/27 职场文书
英文求职信写作小建议
2014/02/16 职场文书
公司年会主持词
2014/03/22 职场文书
毕业自我鉴定总结
2014/03/24 职场文书