博客
关于我
正排索引(doc values)
阅读量:798 次
发布时间:2023-04-02

本文共 761 字,大约阅读时间需要 2 分钟。

正排索引(Doc Values)与倒排索引的作用与应用

在搜索引擎中,正排索引(Doc Values)与倒排索引是两个核心概念,它们分别在搜索和排序中发挥着重要作用。

正排索引的作用

正排索引主要用于排序、聚合和过滤操作。在建立索引时,除了为搜索设计倒排索引,我们还会创建正排索引。正排索引保存在磁盘上,并可以通过内存或磁盘直接访问。内存足够时,部分数据会缓存在内存中,以提高性能。

倒排索引的高效搜索

倒排索引在搜索时表现尤为出色。以简单的文档示例:

文档1: I have a friend who loves smile文档2: love me, I love you

建立倒排索引后,搜索“love you”只需查找包含所有词条的文档,效率极高。

聚合操作的性能问题

然而,倒排索引在聚合操作中表现不佳。例如,获取文档2中的所有唯一词条需要遍历整个索引,成本较高且难以扩展。

正排索引的优势

正排索引通过字段存储文档信息,使聚合操作高效化。例如,通过正排索引可以快速确定文档2包含多少词条。

倒排索引与正排索引的结合优势

在包含过滤条件或检索条件的聚合操作中,先利用倒排索引确定文档范围,再结合正排索引提取字段信息,最后进行聚合计算。这种组合方式是最高效的。

禁用正排索引的示例

虽然正排索引默认启用所有字段,但可以通过配置不存储正排索引,减少磁盘占用。例如:

{  "mappings": {    "dynamic": "strict",    "properties": {      "gender": {        "type": "keyword",        "doc_values": false      }    }  }}

这种方式在需求不确定时有助于节省资源,但不建议用于生产环境。

转载地址:http://omefk.baihongyu.com/

你可能感兴趣的文章
P3240 [HNOI2015]实验比较 树形DP
查看>>
SpringBoot中集成Minio高性能分布式存储文件服务入门
查看>>
P3383 素数筛
查看>>
P3455 [POI2007]ZAP-Queries
查看>>