码迷,mamicode.com
首页 > 其他好文 > 详细

ES常用语句之Filter?DSL

时间:2020-08-20 19:06:17      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:ext   状态   nosql   date   sql   需要   dsl   一起   操作   

1.term过滤(精准匹配)

?????????作用:主要用于精准匹配哪些值,比如:数字,日期,布尔值,not_analyzed的字符串(未经分析的文本数据类型),例如:
?????????{“term”:{“age”:26}}
?????????{“term”:{“date”:“2014-09-01”}}
?????????{“term”:{“public”:true}}
?????????{“term”:{“tag”:“full_text”}}
?????????查找hostname字段完全匹配成activity.report的数据:
?????????{
???????????"query":{
?????????????"term":{
???????????????"hostname":"activity.report"
???????????????}
?????????????}
???????????}

2.terms过滤(或)

?????????作用:与term类似,但terms允许指定多个匹配条件。如果某个字段指定多个值,那么文档需要一起做匹配。例如:
?????????“terms”:{
???????????"tag":["search","full_text","nosql"]
???????????}
?????????}
?????????查询所有http状态是302和304的,ES中的状态是数字类型的字段,所以可以直接这么写:
?????????“query”:{
???????????“terms”:{
?????????????“status”:[
???????????????303,
???????????????304
?????????????]
???????????}
?????????}
?????????可理解为是term精准匹配下“或”的关系。

3.range过滤(按范围查找)

?????????作用:按照指定范围查找一批数据。
?????????范围操作符:
??????????????????lt:小于
??????????????????lte:小于等于
??????????????????gt:大于
??????????????????gte:大于等于
?????????查询年龄在10-20岁之间:
?????????{
???????????“query”:{
?????????????“range”:{
???????????????“age”:{
?????????????????“gte”:20,
?????????????????“lte”:30
???????????????}
?????????????}
???????????}
?????????}
?????????请求页面耗时大于1s的数据:
?????????

4.exists和missing过滤

5.bool过滤

ES常用语句之Filter?DSL

标签:ext   状态   nosql   date   sql   需要   dsl   一起   操作   

原文地址:https://blog.51cto.com/13678728/2521221

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!