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

一 什么是 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'])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值