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

本文深入探讨了Elasticsearch中的几种过滤查询方法,包括term过滤的精准匹配、terms过滤的或逻辑、range过滤的范围查找,以及exists和missing过滤。通过示例展示了如何使用这些过滤器来精确地定位和检索数据,对于理解和优化Elasticsearch查询性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值