|NO.Z.00024|——————————|BigDataEnd|——|Hadoop&ElasticSearch.V24|——|ELK.v24|集群|QueryDSL|Filter DSL|

一、Filter DSL
### --- Filter DSL

~~~     Elasticsearch中的所有的查询都会触发相关度得分的计算。
~~~     对于那些不需要相关度得分的场景下,Elasticsearch以过滤器的形式提供了另一种查询功能,
~~~     过滤器在概念上类似于查询,但是它们有非常快的执行速度,
~~~     # 执行速度快主要有以下两个原因:

~~~     过滤器不会计算相关度的得分,所以它们在计算上更快一些。
~~~     过滤器可以被缓存到内存中,这使得在重复的搜索查询上,其要比相应的查询快出许多。
~~~     为了理解过滤器,可以将一个查询(像是match_all,match,bool等)和一个过滤器结合起来。
~~~     我们以范围过滤器为例,它允许我们通过一个区间的值来过滤文档。
~~~     这通常被用在数字和日期的过滤上。 
~~~     下面这个例子使用一个被过滤的查询,其返回price值是在2001000之间(闭区间)的书。
### --- 示例

POST /book/_search
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"range": {
"price": {
"gte": 200,
"lte": 1000
}
}
}
}
}
}
~~~     分解上面的例子,被过滤的查询包含一个match_all查询(查询部分)和一个过滤器(filter部分)。
~~~     可以在查询部分中放入其他查询,在filter部分放入其它过滤器。
~~~     在上面的应用场景中,由于所有的在这个范围之内的文档都是平等的(或者说相关度都是一样的),
~~~     没有一个文档比另一个文档更相关,所以这个时候使用范围过滤器就非常合适了。
~~~     通常情况下,要决定是使用过滤器还是使用查询,你就需要问自己是否需要相关度得分。
~~~     如果相关度是不重要的,使用过滤器,否则使用查询。
~~~     查询和过滤器在概念上类似于SELECT WHERE语句。

 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(17)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示