当前位置: 移动技术网 > IT编程>开发语言>Java > Elasticsearch 基于 URL 的搜索请求

Elasticsearch 基于 URL 的搜索请求

2019年01月14日  | 移动技术网IT编程  | 我要评论

营口二手房出售,射手座流星雨图片,鬼帝的驭兽狂妃

背景

elasticsearch 不像关系型数据库,没有简易的 sql 用来查询数据,只能通过调用 restful api 实现查询。大体上查询分为两种,基于 url 的和基于请求主体的。基于 url 的方式比较简单清晰,用得较多,在这简单记录下。

 

基本模式

基于 url 的搜索请求基本模式如上图所示:
1,是一个 linux curl 命令,利用命令行的方式发起一个 http 命令;
2,则是url路径,指明搜索范围,比如上图所指的搜索范围就是 get-together 索引下的 group 类型;
3,是 _search 端点(endpoint),表明这是一个搜索请求;
4,传入一个 pretty参数,美化(格式化)返回结果,非必填。
运行该条命令后,会查询出get-together 索引下的 group 类型下的所有文档。

 

q

q 参数用于指定搜索的关键词

# 搜索 get-together 索引,group 类型中,包含“elasticsearch”的文档
curl -x get 'localhost:9200/get-together/group/_search?pretty&q=elasticsearch'

# 搜索 get-together 索引,group 类型中,属性 description 包含“elasticsearch”的文档
curl -x get 'localhost:9200/get-together/group/_search?pretty&q=description:elasticsearch'

 

from & size

假设某个搜索请求会返回一大批文档,出于网络性能的考虑,往往不需要全部返回,所以可以使用 from,size 来达到限制结果集数量的目的。from 指定起始,size 指定起始后多少条文档,比如 from=0,size=2,表明从第0条开始返回,最多返回两条文档,如下所示。

curl -x get 'localhost:9200/get-together/group/_search?pretty&from=0&size=2'

size如果不指定,默认为10

 

sort

对结果排序,默认是降序,可以利用 asc,desc 表明是升序还是降序,另外除了对文档属性值进行排序,还可以对文档的评分进行排序

# 对 created_on 字段进行排序,利用asc,desc指明是升序还是降序
curl -x get 'localhost:9200/get-together/group/_search?pretty&sort=created_on:asc'
curl -x get 'localhost:9200/get-together/group/_search?pretty&sort=created_on:desc'

# 对文档的评分进行排序
curl -x get 'localhost:9200/get-together/group/_search?pretty&q=elasticsearch&sort=_score'

 

_source

或出于网络性能,或出于结果清晰,往往只关注文档的某几个属性。我们可以使用 _source 来指明只返回哪些属性

curl -x get 'localhost:9200/get-together/group/_search?pretty&_source=organizer,description'

 

引用

1.《elasticsearch 实战》- radu gheorghe

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网