首页 热点资讯 义务教育 高等教育 出国留学 考研考公

你还不知道什么叫倒排序索引?ES的分词过程是怎么样?看它就可以了!_百...

发布网友 发布时间:2024-11-27 10:27

我来回答

1个回答

热心网友 时间:2024-12-27 14:07

引言:在深入 Elasticsearch 的 Query DSL 前,理解“倒排序索引”与“Analysis”至关重要,以助于检索理解与应用。

一、倒排索引是什么?

倒排索引,Elasticsearch 中的核心索引结构,其特点是从文档单词到文档 ID 的映射。举个专栏文章检索的例子,当我们在各大平台使用关键词搜索时,便应用了倒排序索引技术。

以关系型数据库 MySQL 的索引为例,“id->题目->内容”形式的索引在已知 id 或题目时检索效率极高。但若仅有一个检索关键词,例如搜索“倒排序索引”相关文章,则无法通过 id 或题目索引快速定位,需对整个内容进行扫描,效率低效。为解决这类需求,全文搜索的倒排索引结构应运而生。

倒排索引的核心是建立“关键词->文档 ID”的映射关系,从而实现以关键词检索,大幅提升效率。

二、倒排索引是如何工作的?

倒排索引构建与搜索过程分为两步:构建倒排索引与倒排索引搜索。

1、构建倒排索引:对文档内容进行分词,形成 token(单词),保存 token 与文档的对应关系。

2、倒排索引搜索:通过关键词检索,返回匹配文档。

三、Analysis 进行分词

Analysis,即文本分析,是将全文转化为一系列单词的过程。在 Elasticsearch 中,通过内置分词器实现或自定义分词器。

Analyzer 由三部分构成:Character Filters、Tokenizer、Token Filters。

Character Filters 负责原始文本处理,如去除 HTML;Tokenizer 则依据规则将文本分割为单词;Token Filters 对单词进行加工,如转小写、删除 stop words、增加同义词。

Analyzer 分词过程概述如下:

首先,字符串通过每个 Character Filters 处理,整理文本内容。

其次,字符串被 Tokenizer 分解为单个词条。

最后,词条经 Token Filters 加工,可能包括转小写、删除无用词、增加同义词等。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com