推荐系统[九]项目技术细节讲解z1:Elasticsearch 如何进行快速检索(ES倒排索引和分词原理)以及倒排索引在召回中的应用。
Posted 汀、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统[九]项目技术细节讲解z1:Elasticsearch 如何进行快速检索(ES倒排索引和分词原理)以及倒排索引在召回中的应用。相关的知识,希望对你有一定的参考价值。
1.倒排索引
索引,初衷都是为了快速检索到你要的数据。(加快查询和搜索速度),在信息检索领域使用比较广泛。核心的需求是:如何从超大规模的内容库中召回匹配关键字的结果。
在mysql的索引,如果对某一个字段加了索引,一般来说查询该字段速度是可以有显著的提升。每种数据库都有自己要解决的问题(或者说擅长的领域),对应的就有自己的数据结构,而不同的使用场景和数据结构,需要用不同的索引,才能起到最大化加快查询的目的。 对 Mysql 来说,是 B+ 树,对 Elasticsearch/Lucene 来说,是倒排索引。
比如,在谷歌中搜索包含 ”推荐系统“ 关键字的内容。最直观的做法是针对数据库中所有内容一条一条匹配。但这样查找复杂度至少是O(n),面对成千上亿的海量数据,效率上远远达不到要求。因此,搜索引擎常规做法都是预先针对内容建立一个关键字索引。记录关键字对应的文档Id,位置,甚至是权重(分数),查询的时候,直接到表中获取关键字的文档列表,倒排索引一般使用hash索引结构,查询复杂度O(1)。可以极大减少检索时间。
1.1 正排索引和倒排索引区别
正排索引(Forward Index)和倒排索引(Inverted Index)是信息检索系
以上是关于推荐系统[九]项目技术细节讲解z1:Elasticsearch 如何进行快速检索(ES倒排索引和分词原理)以及倒排索引在召回中的应用。的主要内容,如果未能解决你的问题,请参考以下文章
推荐系统[九]项目技术细节讲解z4:向量检索技术工程上实践,曝光去重实践以及检索引擎该如何选择:支撑亿级索引5毫秒级的检索[elasticsearchmilvus]
推荐系统[九]项目技术细节讲解z3:向量检索技术与ANN搜索算法[KD树AnnoyLSH局部哈希PQ乘积量化IVFPQ倒排乘积量化HNSW层级图搜索等],超级详细技术原理讲解