ES学习摘要 - 7. Search APIs

7.1 Search

search API提供两种模式传递查询条件:url参数,request body

所有search API都支持跨索引、跨索引类型进行查询

7.2 URI Search

可以通过url参数传递查询条件,一个例子:

GET twitter/_search?q=user:kimchy

支持的参数:

q query string

df 默认查询的field

_source false,不返回_source部分;指定返回的fields

timeout 超时时间

from 返回list开始位置

size 返回list总体数目

query string会被解析成为一组temrs以及operators。A term可以是一个单词或者双引号包括的一个短语,如"quick brown"。query string支持一下特殊的语法:

field names

status:active status包含”active“

title:(quick OR brown) = title:(quick brown) title包含quick或者brown

author:"John Simth" author包含短语“John Simth”

book.\*:(quick brown) book.XXX包含quick或brown

_exists_:title title非空

wildcards

?代表一个字符,*代表一组字符

regular expressions

支持正则:name:/joh?n(ath[oa]n)/,正则表达式在/.../之间

fuzziness

查找相似单词,用~

quikc~ brwn~ foks~

ranges

date,numeric或者string类型支持区间查询。[]包含,{}不包含

date:[2012-01-01 TO 2012-12-31]

count:[1 TO 5]

count:[10 TO *]

date:{* TO 2012-01-01}

boolean opperators

+(必须包含) -(必须不包含)

quick brown +fox -news

fox必须包含

news必须不包含

quick brown可选,包含会增加关联度

AND,OR.NOT(&&,||,!)表示逻辑运算

grouping

()包含子query

7.3 Request Body Search

可以将查询条件包含在request body中,该类型的查询需要满足Query DSL。

query

query部分通过Query DSL指定查询条件

GET /_search { "query" : { "term" : { "user" : "kimchy" } } }

from/size

指定返回的list区间,from默认为0,size默认为10

GET /_search { "from" : 0, "size" : 10, "query" : { "term" : { "user" : "kimchy" } } }

sort

指定排序方式:

GET /my_index/_search { "sort" : [ { "post_date" : {"order" : "asc"}}, "user", { "name" : "desc" }, { "age" : "desc" }, "_score" ], "query" : { "term" : { "user" : "kimchy" } } }

source filtering

指定_source中返回的fields:

GET /_search { "_source": false, "query" : { "term" : { "user" : "kimchy" } } }

不返回_source

"_source": "obj.*" obj.下的所有fields

"_source": [ "obj1.*", "obj2.*" ]

"_source": { "includes": [ "obj1.*", "obj2.*" ], "excludes": [ "*.description" ] }

7.4 Count API

返回命中查询的doc数目:

GET /twitter/_doc/_count?q=user:kimchy

或者

GET /twitter/_doc/_count { "query" : { "term" : { "user" : "kimchy" } } }

7.5 Profile API

返回一个请求在各个component中的消耗的时间

GET /twitter/_search { "profile": true, "query" : { "match" : { "message" : "some number" } } }

转载于:https://my.oschina.net/zhuhui/blog/3079961

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值