【基础篇】第4章 Elasticsearch 查询与过滤

在Elasticsearch的世界里,高效地从海量数据中检索出所需信息是其核心价值所在。本章将深入解析查询与过滤的机制,从基础查询到复合查询,再到全文搜索与分析器的定制,为你揭开数据检索的神秘面纱。

4.1 基本查询

4.1.1 Match查询

Match查询是最基础的全文查询方式,用于查找与指定字段内容相匹配的文档。它支持模糊匹配,适用于字符串字段。例如,查询包含"elasticsearch"的文档:

{"query": {"match": {"content": "elasticsearch"}}
}

4.1.2 Term查询

Term查询用于精确匹配,不进行分析,即搜索时完全按照输入的词进行查找,适用于数字、日期或未经分析的字符串字段:

{"query": {"term": {"tag": "tutorial"}}
}

4.1.3 Range查询

Range查询用于筛选字段值在特定范围内的文档,适用于日期、数字等类型:

{"query": {"range": {"publish_date": {"gte": "2023-01-01","lte": "2023-12-31"}}}
}

4.2 复合查询与过滤

4.2.1 组合查询

组合查询通过将多个查询条件逻辑组合起来,实现更复杂的检索需求。常见的组合查询有boolshouldmustmust_not等。

{"query": {"bool": {"must": [{ "match": { "title": "Elasticsearch" }}],"filter": [{ "term": { "category": "technology" }}]}}
}

4.2.2 布尔查询与上下文

布尔查询是复合查询中最常用的形式,它允许你组合多个查询条件,通过must(与)、should(或)、must_not(非)来表达逻辑关系。filter子句用于过滤条件,与评分无关,提高查询效率。

4.2.3 查询与过滤的区别

查询上下文(query context)会影响文档的评分,适合全文搜索;而过滤上下文(filter context)不计算文档得分,仅用于过滤结果集,适用于精确匹配或条件筛选,性能更优。

4.3 全文搜索与分析器

4.3.1 全文检索原理

全文检索基于倒排索引,将文档中每个单词映射到包含该单词的所有文档的列表。这一机制允许Elasticsearch快速定位包含特定词汇的文档,是全文搜索的基础。
在这里插入图片描述

4.3.2 分析器的工作机制

分析器是全文搜索的核心组件,负责将文本分割成词语(Tokenization)、转换(Normalization)、去除停用词(Stop Words Removal)等过程,最终生成索引项或查询项。这一过程包括了三个关键步骤:字符过滤、分词、以及词元过滤。下面,我们将逐一深入探讨这些步骤。

字符过滤(Character Filtering)

字符过滤是分析过程的第一步,它的主要任务是在文本被分词之前,对文本进行预处理,移除或替换某些不需要的字符。例如,HTML标签、特殊符号或者非打印字符等,常常在这个阶段被处理掉。字符过滤器可以确保后续步骤能够专注于文本的实际内容,而不是被这些附加元素干扰。

示例代码片段:

"char_filter": ["html_strip"]

这里,html_strip就是一个字符过滤器,它负责去除文本中的HTML标签,确保纯文本内容进入后续处理环节。

分词(Tokenization)

分词是分析过程中最核心的步骤,它将文本切分成一个个有意义的单元,这些单元被称为词元(tokens)。分词器(tokenizer)决定着如何将文本分割,不同的分词器适用于不同类型的内容。例如,standard分词器会按单词边界进行分割,而whitespace分词器则简单地按空格分割文本。

示例代码片段:

"tokenizer": "standard"

使用standard分词器,一个句子会被分解成单个词汇,同时去除标点符号。

词元过滤(Token Filtering)

词元过滤发生在分词之后,这个阶段可以对产生的词元进行进一步的修改或处理。常见的操作包括转换大小写、删除停用词(stop words)、同义词替换、词干提取(stemming)或词形还原(lemmatization)等。这些操作有助于减少索引的大小,提高搜索效率,同时增强搜索的灵活性和准确性。

示例代码片段:

"filter": ["lowercase", "asciifolding"]
  • lowercase过滤器将所有词元转换为小写,确保搜索时大小写不敏感。
  • asciifolding过滤器将非ASCII字符转换为它们的ASCII等价形式,比如将é转换为e,这有助于国际化搜索的一致性。

综合作用

通过这三个步骤,原始文本被转换成了适合索引和搜索的形式。每个分析器都是由这三个组件的不同组合构成的,用户可以根据具体需求定制分析器,以优化搜索体验。例如,对于英文文档,可能需要去除停用词和执行词干提取;而对于中文文档,则可能需要利用专门的中文分词器,如IK Analyzer。

理解分析器的工作机制对于优化Elasticsearch的搜索性能和准确性至关重要,它允许用户精确控制文本如何被索引和搜索,从而满足各种复杂的应用场景需求。

4.3.3 自定义分析器

Elasticsearch提供了丰富的内置分析器,如standard、whitespace、keyword等。若内置分析器不能满足特定需求,可自定义分析器,通过组合字符过滤器(Character Filters)、分词器(Tokenizer)和词元过滤器(Token Filters)来定制化文本处理流程。

{"analysis": {"analyzer": {"my_custom_analyzer": {"type": "custom","tokenizer": "standard","char_filter": ["html_strip"],"filter": ["lowercase", "asciifolding"]}}}
}

小结

本章详细介绍了Elasticsearch查询与过滤的基础与高级概念,从简单到复杂的查询构建,到深入全文检索原理与分析器定制,为高效检索数据提供了全面的理论与实践指导。掌握这些技能,你将能更加灵活地在Elasticsearch中执行复杂的数据搜索任务。接下来的《第5章 数据聚合与分析》将进一步探讨如何利用Elasticsearch强大的聚合功能,对数据进行深度分析与洞察。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt——升级系列(Level Seven):事件、文件

目录 Qt事件 事件介绍 事件的处理 按键事件 鼠标事件 定时器 事件分发器 事件过滤器 Qt文件 Qt文件概述 输入输出设备类 文件读写类 文件和目录信息类 Qt事件 事件介绍 事件是应⽤程序内部或者外部产⽣的事情或者动作的统称。在 Qt 中使⽤⼀个对象来表⽰⼀个事件。所有的 Qt …

工商业光伏项目如何快速开发?

一、前期调研与规划 1、屋顶资源评估:详细测量屋顶面积、承重能力及朝向,利用光伏业务管理软件进行日照分析和发电量预测,确保项目可行性。 2、政策与补贴研究:深入了解当地政府对工商业光伏项目的政策支持和补贴情况&#xff0…

JVM原理(十四):JVM虚拟机运行时栈帧结构

Java虚拟机已方法作为最基本的执行单位。 栈帧:是支持Java虚拟机进行方法调用和方法执行背后的数据结构。 栈帧存储了方法的 局部变量表、操作数栈、动态连接和放回地址等信息。 每一个方法的调用开始和执行结束,都对应着一个栈帧在虚拟机栈里面从入栈…

Linux文件与日志

目录 1. Linux 文件系统 1.1 inode号 1.2 EXT类型文件恢复 1.3 xfs类型文件备份和恢复 2. 日志分析 2.1 日志类型 2.2日志配置文件 2.3 日志分析的重要性 在Linux系统中,文件和日志是管理和维护系统运行所不可或缺的。理解它们的工作原理和如何有效地管理和…

驱动开发:配置Visual Studio驱动开发环境

100编程书屋_孔夫子旧书网 配置驱动开发环境配置驱动开发模板配置驱动双机调试 在正式开始驱动开发之前,需要自行搭建驱动开发的必要环境,首先我们需要安装Visual Studio 2013这款功能强大的程序开发工具,在课件内请双击ISO文件并运行内部的…

2009-2024年第一季度上市公司华证ESG评级季度数据

2009-2024年第一季度上市公司华证ESG评级季度数据 1、时间:2009-2024年第一季度 2、指标:证券代码、证券简称、评级日期、综合评级、综合得分、E评级、E得分、S评级、S得分、G评级、G得分、证监会行业(新)、同花顺行业&#xff…

Visio框图自动带填充色原因及如何取消

0 Preface/Foreword Visio,Windows的一个流程图&框图制作工具。 1 新建Visio文件 1.1 图形带填充 新建Visio时候,如果选择了模版,那么就后期使用的工具元素会自动填充。 带来的弊端,在元素编辑文字时,如果此时不…

苹果公司的Wifi定位服务(WPS)存在被滥用的风险

安全博客 Krebs on Security 2024年5月21日发布博文,表示苹果公司的定位服务存在被滥用风险,通过 "窃取"WPS 数据库,可以定位部队行踪。 相关背景知识 手机定位固然主要依赖卫星定位,不过在城市地区,密集的…

新建Vue工程的几种方法

文章目录 使用CLI2 : vue-cli使用CLI3 : vue/cli使用 vue3构建 (内置Vite)直接使用Vite使用parcel (最少配置方案) 使用CLI2 : vue-cli vue-cli是针对构建vue的脚手架CLI2,只能新建vue2工程。 全局安装vue-cli之后,构建vue2项目的…

03.C1W2.Sentiment Analysis with Naïve Bayes

目录 Probability and Bayes’ RuleIntroductionProbabilitiesProbability of the intersection Bayes’ RuleConditional ProbabilitiesBayes’ RuleQuiz: Bayes’ Rule Applied Nave Bayes IntroductionNave Bayes for Sentiment Analysis P ( w i ∣ c l a s s ) P(w_i|clas…

npm 淘宝镜像证书过期,错误信息 Could not retrieve https://npm.taobao.org/mirrors/node/latest

更换 npm 证书 问题描述报错原因更换步骤1 找到 nvm 安装目录2 发现证书过期3 更换新地址4 保存后,重新安装成功 问题描述 在使用 nvm 安装新版本时,未成功,出现报错: Could not retrieve https://npm.taobao.org/mirrors/node/l…

【postgresql】表操作

创建表 (CREATE TABLE): CREATE TABLE table_name ( column1 data_type constraint,column2 data_type constraint,... ); 插入数据 (INSERT INTO): INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); 查询数据 (SELECT): SELECT column1, c…

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

数据作为新型生产要素,正支撑企业的数智化转型。但企业数字化建设也存在管理成本高、数据产品使用门槛高、数据资产价值不够的问题,其原因在于业务和数据之间没有形成双向良性驱动。 结合新时代企业数字化转型需求,火山引擎基于字节跳动十余…

IC烧录员-带着工程师的梦想远航!

如果说软件工程师是代码程序的创造者,那么IC烧录员就是把工程师们辛苦敲代码,日夜辛劳的成果烧录到芯片里面的实践者,是他们,让工程师们的梦想运用到实践中,是他们带着工程师的梦想远航,他们的薪酬或许没有…

第一节-k8s架构图

一个Deployment,可以由多个不同Node下的Pod组成,每个Pod又由多个Container组成。 区分Deployment是用Labels(key:value),区分Pod是用PodName,区分Container是用ContainerName。 一个Node可以包含多个不同Deployment中的pod&…

MySQL-作业1

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建表 1、创建一个名称为db_system的数据库 2、在该数据库下创建两张表,具体要求如下: 员工表 user …

米国政府呼吁抛弃 C 和 C++

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 很多观点认为C 或 C永远不可被…

聚鼎装饰画:装饰画生意现在做晚吗

在这个充满机遇与挑战的时代,涉足装饰画领域是否为时已晚?许多人心中或许有着这样的疑问。事实上,尽管市场上的竞争者众多,但正如“朝霞映满天,别样红”一般,每个行业的黄金时期都有所不同,关键在于我们能…

在线JSON可视化工具--改进

先前发布了JSON格式化可视化在线工具,提供图形化界面显示结构关系功能,并提供JSON快速格式化、JSON压缩、快捷复制、下载导出、对存在语法错误的地方能明确显示,而且还支持全屏,极大扩大视野区域。 在线JSON格式化可视化工具 但…

硅纪元AI应用推荐 | 国产创作引擎即梦AI助力创作者探索创作新境界

“硅纪元AI应用推荐”栏目,为您精选最新、最实用的人工智能应用,无论您是AI发烧友还是新手,都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能,开启智慧新时代! 在人工智能快速发展的今天,各…