ES-- Elasticsearch粗略分析

本文详细介绍了ElasticSearch及其核心组件Lucene的工作原理和技术特点。ElasticSearch是一款基于Lucene的分布式全文搜索引擎,支持RESTful接口,适用于云计算环境。文章还探讨了如何使用ElasticSearch进行查询操作。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于 云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

REST是一种架构风格,其核心是面向资源;而webService底层SOAP协议,主要核心是面向活动;RESTful 使用HTTP post(创建、更新)数据、读取数据、删除数据。使用HTTP实现CRUD(创建、读取、更新、删除)操作。

termQuery  //匹配查询,name="123"  ; 

 rangeQuery  from  to//以什么字段为标准,从什么开始,到什么结束; 

prepareSearch("index1", "index2")//设置要查询的索引(index);

content//为field,test为查询内容

//其中must表示必须满足,mustNot表示必须不满足,should表示可有可无

QueryBuilders.termQuery("name", "123")

.rangeQuery("name").from("1000").to("3000")

.must(termQuery("content", "test1"))

.mustNot(termQuery("content", "test2"))

.should(termQuery("content", "test3"));

//通过id来查询

QueryBuilders.idsQuery().ids("1", "2") 

//显示所有的记录

QueryBuilders.matchAllQuery();

//最少匹配数(只能在should后,表示几个可有可无中必须有一个匹配)当5个数据时,minimumNumberShouldMatch为75%时向下取整为3.(可以为整数或者百分数)

minimumNumberShouldMatch(1);

//仅返回n条聚合结果(),

.size(n)

//求索引库文档总数 

.getCount()

需要特别注意的是,排序是在TermAggregation处执行的,Order.aggregation函数的第一个参数是aggregation的名字,第二个参数是boolean型,true表示正序,false表示倒序

转载于:https://www.cnblogs.com/antime/p/7608545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值