我读到了倒排索引(被Solr、弹性搜索等文本搜索引擎使用)和我所理解的(如果我们以"Person“为例):
与人的关系的属性是颠倒的:
John -> PersonId(1), PersonId(2), PersonId(3)
London -> PersonId(1), PersonId(2), PersonId(5)我现在可以在个人记录中搜索“住在伦敦的约翰”
这不是解决了所有的问题吗?为什么我们有前瞻性(或常规数据库索引)呢?或者换句话说,在什么情况下,常规索引是有用的?请解释一下。谢谢。
发布于 2015-08-01 12:34:09
您所缺少的一点是,正向索引和反向索引之间没有真正的技术区别。在这种情况下,“前进”和“倒置”只是用来区分以下几个方面的描述性术语:
倒排索引的概念只有在正则(正向)索引的概念已经存在的情况下才有意义。在搜索引擎中,前向索引将是向量一词;包含在特定文档中的术语列表。倒排索引将是包含特定术语的文档列表。
当你明白“前进”和“倒置”这两个词实际上只是用来描述你所谈论的指数的性质的相对术语时,你的问题就不再有意义了。
发布于 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/
发布于 2022-05-13 14:20:37
在前向索引中,输入是文档,输出是包含在文档中的单词。
{
  doc1: [word1, word2, word3],
  doc2: [word4, word5]
}在反向/倒排索引中,输入是一个单词,输出是包含单词的所有文档。
{
  word1: [doc1, doc10, doc3],
  word2: [doc5, doc3]
}搜索引擎利用反向/倒排索引从关键词中获取文档。
https://stackoverflow.com/questions/31761218
复制相似问题