当前位置:   article > 正文

es的range过滤_ES常用语句之Filter DSL

es filter range 多个字段

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过滤

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/807284
推荐阅读
相关标签
  

闽ICP备14008679号