并行过滤器|学习笔记

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

开发者学堂课程【ElasticSearch 最新快速入门教程并行过滤器】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10677


并行过滤器

 

内容介绍:

一、 为何使用过滤器。

二、 过滤器更快执行速度的两个主要原因。

三、 使用过滤器搜索返回 balances[20000,30000]。

 

一、 为何使用过滤器

文档中 score(_score 字段是搜索结果)。score 是一个数字型的,是一种相对方法匹配查询文档结果。分数越高,搜索关键字与该文档相关性越高;越低,搜索关键字与该文档相关性越低。

在 elasticsearch 中所有的搜索都会触发相关性分数计算。如果我们不使用相关性分数计算,那要使用另一种查询能力,构建过滤器。

 

二、过滤器更快执行速度的两个主要原因。

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

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

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


三、使用过滤器搜索返回 balances[20000,30000]

为了便于理解过滤器,先介绍过滤器搜索

(like match_all,match,bool,etc.),可以与其他的普通查询搜索组合一个过滤器。

range filter,允许我们通过一个范围值来过滤文档,一般用于数字或日期过滤使用过滤器搜索返回balances[20000,30000]。换句话说,balance>=20000 && balance<=30000。

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

‘{

“query”:{

“filtered”:{

"query”: {"match_all":{}},

"filter":{

"range":{

"balance":{

"gte":20000,

"Ite":30000

}

}

}

}

注意:

elasticsearch 旧版本 filtered 替换。从 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”:{

must”:{

match_all”:{}

},

filter”:{

range”:{

balance”:{

gte”:20000,

lte”:30000,

查询代码:

{

“query”:{

“bool”:{

“must”:{

“match_all”:{}

},

“filter”:{

“range”:{

“balance”:{

“gte”:20000,

“lte”:30000,

}

查询结果:

image.png

注意:

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

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

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

相关文章
|
人工智能
【教育革新】阿里“通义听悟”:高校师生的智能助手,免费赠送500小时转写时长!
阿里云启动“通义听悟高校公益计划”,向中国大陆高校师生提供免费的智能学习工具。拥有edu.cn邮箱的师生可获500小时音视频转写时长和200G存储空间,借助AI技术加速学习与科研。该产品日处理字符数达20亿字,成为学生和教师的高效辅助工具,推动教育领域数字化进程。此计划旨在提升教育资源获取性和学习效率,创造智能化学习环境。
724 1
|
存储 关系型数据库 数据库
云数据库如何确保数据的安全性和可靠性?
云数据库如何确保数据的安全性和可靠性?
451 0
|
JavaScript 安全 Java
【开源】 Spring Boot 3 + Vue 3 前后端分离权限管理系统说明文档
【开源】 Spring Boot 3 + Vue 3 前后端分离权限管理系统说明文档
|
存储 SQL 关系型数据库
ClickHouse常见数据类型以及常用SQL语法
ClickHouse常见数据类型以及常用SQL语法
|
编解码 Ubuntu Linux
Linux FrameBuffer(二)- VMware虚拟机的Ubuntu系统FrameBuffer画图
Linux FrameBuffer(二)- VMware虚拟机的Ubuntu系统FrameBuffer画图
566 0
Linux FrameBuffer(二)- VMware虚拟机的Ubuntu系统FrameBuffer画图
|
运维 Shell 编译器
eBPF 动手实践系列一:解构内核源码 eBPF 样例编译过程
基于 4.18 内核的基于内核源码的原生编译方式介绍,开发符合自己业务需求的高性能的 ebpf 程序。
|
Java
卸载和安装JDK
卸载和安装JDK
233 0
|
机器学习/深度学习 算法 Cloud Native
【Offer 5000-全球技术服务部-A】- 招聘职位详情
全球技术服务部-A本次招聘岗位5个:1、业务中台交付架构师 ;2、数据中台交付架构师(TM);3、解决方案算法专家 ;4、云原生方案架构师;5、云产品交付技术架构师。
3955 0
【Offer 5000-全球技术服务部-A】- 招聘职位详情
|
XML Java 数据库
Spring之路(31)–使用NamedParameterJdbcTemplate完成数据库操作(JavaConfig配置)
本文目录 1. 背景 2. 在配置类中配置数据源和namedParameterJdbcTemplate 3. 实现数据库操作组件BlogDao 4. 将BlogDao注册为bean 5. 测试 6. 总结
936 0
不重不漏的分析方法:MECE分析法
麦肯锡的巴巴拉·明托(Barbara Minto)顾问在金字塔原理中提到的一个重要原则就是MECE,那么满足MECE的分析方法就是MECE分析法,全称 Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”。 也就是对于一个重大的议题,能够做到不重叠、不遗漏的分类,而且能够借此有效把握问题的核心,并成为有效解决问题的方法。
595 0
不重不漏的分析方法:MECE分析法