首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正向指数和倒指数为什么?

正向指数和倒指数为什么?
EN

Stack Overflow用户
提问于 2015-08-01 11:18:18
回答 3查看 10.9K关注 0票数 14

我读到了倒排索引(被Solr、弹性搜索等文本搜索引擎使用)和我所理解的(如果我们以"Person“为例):

与人的关系的属性是颠倒的:

代码语言:javascript
运行
复制
John -> PersonId(1), PersonId(2), PersonId(3)
London -> PersonId(1), PersonId(2), PersonId(5)

我现在可以在个人记录中搜索“住在伦敦的约翰”

这不是解决了所有的问题吗?为什么我们有前瞻性(或常规数据库索引)呢?或者换句话说,在什么情况下,常规索引是有用的?请解释一下。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-08-01 12:34:09

您所缺少的一点是,正向索引和反向索引之间没有真正的技术区别。在这种情况下,“前进”和“倒置”只是用来区分以下几个方面的描述性术语:

  • 包含在文档中的单词列表。
  • 包含一个单词的文档列表。

倒排索引的概念只有在正则(正向)索引的概念已经存在的情况下才有意义。在搜索引擎中,前向索引将是向量一词;包含在特定文档中的术语列表。倒排索引将是包含特定术语的文档列表。

当你明白“前进”和“倒置”这两个词实际上只是用来描述你所谈论的指数的性质的相对术语时,你的问题就不再有意义了。

票数 32
EN

Stack Overflow用户

发布于 2015-08-01 12:27:59

下面是对反向索引的解释,来自Elasticsearch:

Elasticsearch使用了一个名为倒排索引的结构,该结构旨在允许非常快速的全文搜索。倒排索引由出现在任何文档中的所有唯一单词组成,对于每个单词,包含其出现的文档列表。https://www.elastic.co/guide/en/elasticsearch/guide/current/inverted-index.html

倒排索引用于快速全文搜索。常规索引效率较低,因为引擎在所有条目中查找一个术语,但是使用索引非常快!

你可以这么说:

  • 前向索引:快速索引,效率较低的查询
  • 倒排索引:查询快,索引慢

但是,它总是与上下文相关的。如果您将其与MySQL进行比较: myisam具有快速读取,innodb具有快速插入/更新和较慢读取。

在这里阅读更多信息:https://www.found.no/foundation/indexing-for-beginners-part3/

票数 3
EN

Stack Overflow用户

发布于 2022-05-13 14:20:37

在前向索引中,输入是文档,输出是包含在文档中的单词。

代码语言:javascript
运行
复制
{
  doc1: [word1, word2, word3],
  doc2: [word4, word5]
}

在反向/倒排索引中,输入是一个单词,输出是包含单词的所有文档。

代码语言:javascript
运行
复制
{
  word1: [doc1, doc10, doc3],
  word2: [doc5, doc3]
}

搜索引擎利用反向/倒排索引从关键词中获取文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31761218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档