结构化不关心文档的相关性或分数,只是简单的包含或排除。
1.查找准确值
(1)过滤器查找匹配文档
(2)创建字节集[1,0,0,0]
(3)字节集存在内存中,我们能跳过1和2,能提升性能。
2.组合过滤
Must、must_not、should
3.查询多个准确值
Terms格式如:
{ "terms" : { "price" : [20, 30] } }
4.包含,而不是相等
理解term是包含而不是相等。
5.范围
Range范围
- gt: > 大于
- lt: < 小于
- gte: >= 大于或等于
- lte: <= 小于或等于
范围实例
GET /my_store/products/_search
{
"query" : {
"filtered" : {
"filter" : {
"range" : {
"price" : {
"gte" : 20,
"lt" : 40
}
}
}
}
}
}
最近一个小时的实例:
"range": {
"timestamp" : {
"gt" : "now-1h"
}
}
"range": {
"timestamp" : {
"gt" : "2014-01-0100:00:00",
"lt" : "2014-01-0100:00:00||+1M" <1>
}
}
6.处理null值
Exists过滤器和missing过滤器
区分一个是否有值,映射数据时,可以设置一个null_value来处理明确的null值。
7.缓存??
每个过滤器都是被独立计算和缓存的。
8.过滤顺序
过滤器的顺序对性能有很大影响。
本文出处:http://blog.csdn.net/shan1369678/article/details/51455540