并行过滤器 | 学习笔记

简介: 快速学习并行过滤器

开发者学堂课程【ElasticSearch 入门精讲并行过滤器学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/10024


并行过滤器


内容简介:

一、简述 ES Rest _并行过滤器

二、代码演示

三、总结


一、简述 ES Rest _并行过滤器

(1)前言

文档中 score(_score字段是搜索结果)。score 是一个数字型的,是一种相对方法匹配查询文档结果。

分数越高,搜索关键字与该文档相关性越高;越低,搜索关键字与该文档相关性越低。在elasticsearch中所有的搜索都会触发相关性分数计算。

如果我们不使用相关性分数计算,那要使用另一种查询能力,构建过滤器。

(2)过滤器是类似于查询的概念,除了得以优化,更快的执行速度的两个主要原因:

1.过滤器不计算得分,所以他们比执行查询的速度

2.过滤器可缓存在内存中,允许重复搜索


二、代码演示

为了使手提炼过滤器,先介绍过滤溶液A(Ne=mol/advanced _b00d-booted-记入与其他的含溢透物混杂s(记含一个过滤器、100g的pH)变一般用于数字或日期过滤使用过滤器搜索返回balances(20000, 3000),

换句话说,

balance)=20000&balance<=30000.

curl -XPOST 'localhost:9200/bank/_ search? pretty' -d

’{

query”:{

"filtered":{

"query":{"match _ all":{}},

"filter":{

"range":{

"balance":{

“gte”:20000,

"Ite":30000

上述代码运行的结果为;

image.png

代码运行:

{

“query”:{

"filtered":{

"query":{"match _ all":{}},

}

运行结果:

image.png

注意:

elasticsearch 旧版本 flitered 替换。从 es 的5.0版本开始,原先的 filtered 逼包,类似 GET_search

{

“query”:{

“filtered”:{

“query”:{

“match”:{

“text”:“quick brown fox"

}

},

“filter”:[

“term”:{

“status”:”published”

}

被淘汰,对应的替换语法是

GET_search

{

“query”:{

“bool”:{

“must”:{

“match”:{

“text”:“quick brown fox"

}

},

“filter”:[

“term”:{

“status”:”published”

}

运行以下代码得到结果:

{

“query”:{

"bool":{

"query":{"match _ all":{}},

"filter":{

"range":{

"balance":{

“gte”:20000,

"Ite":30000

}

注意,bool 中不支持 query 类型,所以要将 query 换成 must

代码变换成:

{

“query”:{

"bool":{

"must":{"match _ all":{}},

"filter":{

"range":{

"balance":{

“gte”:20000,

"Ite":30000

}

得到运行结果如下:

image.png


三、总结

过滤查询包含 match_all 查询(查询部分)和一系列过滤(过滤部分)。可以代替任何其他查询到查询部分以及其他过滤器过滤部分。在上述情况下,过滤器范围智能,因为文档落入 range 所有匹配“平等”,级比另一个更相关,没有文档。

一般情况,最明智的方式决定是否使用 flier or querry,就看你是否关心相关性分数。如果相关性不重要,那就使用filter,否则就使用query。

queries and filters 很类似于关系型数据库中的“ SELECT WHERE clause ”

相关文章
|
8月前
|
设计模式
深入浅出过滤器模式
深入浅出过滤器模式
66 0
|
4月前
|
JavaScript Java 容器
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
本文简要回顾了Servlet过滤器Filter的概念和使用,通过实例演示了如何创建过滤器以过滤请求字符编码,并解释了在web.xml中配置过滤器时使用`/`、`/*`和`/**`的区别。
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
|
2月前
过滤器链加载原理
过滤器链加载原理
38 0
过滤器链加载原理
|
1月前
|
Java Spring
过滤器实现方式
Spring Cloud Gateway 的过滤器用于处理HTTP请求和响应,支持日志记录、请求转发、权限校验等。内置过滤器如AddRequestHeader、RewritePath、SetStatus等,可自定义以满足特定需求。
27 0
|
4月前
|
中间件 编译器 数据处理
在web开发中应用管道过滤器
【9月更文挑战第1天】本文介绍管道-过滤器架构将数据处理流程分解为一系列独立组件,通过管道连接,适用于数据流处理如图像处理、编译器设计等。通过具体实例说明了Gin如何有效支持管道-过滤器风格的设计,构建高性能Web服务。
108 9
|
7月前
分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤
分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤
48 0
|
8月前
|
Java 数据安全/隐私保护
Filter概述、执行流程、拦截路径配置及过滤器链
Filter概述、执行流程、拦截路径配置及过滤器链
103 0
Filter过滤器概念及生命周期
Filter过滤器概念及生命周期
169 0
|
设计模式 数据处理 Scala
利用Actor实现管道过滤器模式
利用Actor实现管道过滤器模式
利用Actor实现管道过滤器模式
|
Java 容器
sprigboot中过滤器执行顺序源码解读
本文主要是搞清楚对于同一请求在springboot项目中自定义的filter和jar包中的filter的执行顺序是如何指定的。
sprigboot中过滤器执行顺序源码解读