gpt4 book ai didi

indexing - B树索引与倒排索引?

转载 作者:行者123 更新时间:2023-12-03 15:45:56 28 4
gpt4 key购买 nike

这是我对两者的理解

B树索引:-通常用于数据库列。它将列内容保留为键,将row_id保留为value。它以排序的方式保留了 key
快速找到键和行的位置

倒排索引:-通常在全文搜索中使用。此处文档中的单词也用作键,以排序的方式与文档位置/id一起存储
作为值(value)。

那么b/w B树索引和Inverted索引有什么区别。对我来说他们看起来一样

最佳答案

简短答案:

  • 是的,它们具有相同的目的-快速查找事物
  • 的不同之处:它们对
  • 有什么帮助/特别擅长
  • 和顺便说一句,命名太令人困惑了

  • 长答案:

    命名

    我的知识来自于SQL世界的实践,因此对我而言,数据存储曾经等同于“数据库”,而其结构则可以快速查找内容-“索引”。

    诀窍是-搜索引擎已经将其存储称为“索引”,那么您如何称该索引为“索引”呢?当然是“倒排索引”!为什么倒立?因为,正如我在您的问题中已经看到的那样,它只会反转主存储。存储就像 primary key --> values一样,它的帮助器结构将其转换为 values --> primary key并帮助按值快速查找文档。

    目的

    您的问题包含各种想法。 "Inverted index"的意思实际上更像是“一种有助于查找已经存储的文档的数据结构”,而 B-Tree只是这种结构的一种实现。

    理论上,索引可以使用您想要的任何数据结构来实现。哈希,图形,树,数组,位图..这仅取决于您的用例。

    差异
    B-Tree适用于变化的数据,因此例如在数据库和文件系统中。缺点:多个索引不能在一个查询中一起使用(我猜是因为这种结构是动态的,因此对文档的引用没有排序),并且数据趋于分散,因此IO可能成为问题。
    "Inverted index"使用位图/数组以及所有内容的排序方式(值列表和文档引用列表)。这些对于静态数据集很有用。并且由于排序的性质,可以将多个索引一起使用。缺点:更新不高效(新文档意味着在排序列表中的某个位置插入值),使用了一些技巧,例如将一批数据传入时将它们保持在一起,并在后台进程中合并为更大的批次。

    关于indexing - B树索引与倒排索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47537318/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com