分布式全文检索引擎ElasticSearch原理及使用实例

Olinda ·
更新时间:2024-11-13
· 979 次阅读

一 什么是 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']) 您可能感兴趣的文章:SpringBoot整合Elasticsearch游标查询的示例代码(scroll)java连接ElasticSearch集群操作docker启动elasticsearch时内存不足问题及解决方法python 使用elasticsearch 实现翻页的三种方式ElasticSearch添加索引代码实例解析SpringBoot集成Elasticsearch过程实例Springboot集成spring data elasticsearch过程详解Java如何使用elasticsearch进行模糊查询



分布式 分布 elasticsearch 全文检索 索引

需要 登录 后方可回复, 如果你还没有账号请 注册新账号