在软件工程中,我们经常创建索引(例如在数据库中),但我也经常听到很多人谈论倒排索引。它们两者之间有什么根本性的不同吗?它们听起来像是一回事。
在软件工程中,我们经常创建索引(例如在数据库中),但是我也听到很多人谈论倒排索引。它们两者之间是否有根本的不同呢?它们听起来好像是一样的东西。在软件工程中,我们经常创建索引(例如在数据库中),但我也经常听到很多人谈论倒排索引。它们两者之间有什么根本性的不同吗?它们听起来像是一回事。
在软件工程中,我们经常创建索引(例如在数据库中),但是我也听到很多人谈论倒排索引。它们两者之间是否有根本的不同呢?它们听起来好像是一样的东西。一个常见的用途是"...允许快速全文搜索。"
这两种类型表示方向性。一种是通过索引向前移动,另一种是向后移动(反向)。就是这样,没有什么神秘的东西需要揭示。否则,这两种类型是相同的,只是问题在于你拥有哪些信息,以及因此你要查找哪些信息。
针对您的询问,我认为实际上没有办法知道为什么使用它今天是什么样子。唯一重要的是定义哪个是向前
,哪个是倒置
,这样我们就可以进行交谈,并且每个人都知道我们正在谈论的方向。想想“左”和“右”这些术语:它们是相对的。哪个是哪个并不重要,除了每个人都需要同意哪个是“左”哪个是“右”,以便这些单词具有含义。如果作为一种文化,我们决定翻转左和右,那么你将面临相同的问题,无法确定“右转”与“左转”的区别,因为约定的含义已经改变了。但是,命名是任意的,因此哪个是哪个(本身)并不重要,重要的是我们都同意其含义。
他们之所以称为倒排索引,是因为已经存在正向索引。以搜索引擎为例,它由两部分组成:第一部分是“网络爬虫和解析器”,它从文档到单词构建索引;第二部分是搜索数据库,它从单词到文档构建索引。因为第一个索引已经存在,我们自然将第二个索引称为倒排索引。
如果你将书的目录(Table of Content)命名为索引,则应该将书末的索引称为“倒排索引”。或者,从另一方面来说,你可以将目录称为倒排索引。
另一个区别:
与正向索引相比,使用倒排索引处理更新是昂贵的。
正向索引通过仅在相应文档索引中反映更改来轻松处理更新,而在倒排索引中,同一更改必须在倒排索引的多个位置上反映。