solr - 正向索引与反向索引为什么?

标签 solr elasticsearch lucene inverted-index forward-indexing

我正在阅读有关倒排索引(由 Solr、Elastic Search 等文本搜索引擎使用)的内容,据我了解(如果我们以“Person”为例):

Person 关系的属性是倒置的:

John -> PersonId(1), PersonId(2), PersonId(3)
London -> PersonId(1), PersonId(2), PersonId(5)

我现在可以搜索“John who lives in London”的人员记录

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

最佳答案

您缺少的一点是,正向索引和反向索引之间没有真正的技术区别。本例中的“正向”和“反向”只是描述性术语,以区分:

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

仅当常规(正向)索引的概念已经存在时,倒排索引的概念才有意义。在搜索引擎的上下文中,前向索引将是术语向量;特定文档中包含的术语列表。倒排索引将是包含给定术语的文档列表。

当您了解术语“正向”和“反向”实际上只是用于描述您正在谈论的索引的性质的相对术语时 - 并且实际上索引只是一个索引 - 您的问题不会真的更有意义了。

关于solr - 正向索引与反向索引为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761218/

相关文章:

solr - 过滤 solr 方面计数

Solr 按类别计数

Solr - 如何获取包含 Solr 中该字段内搜索词的每个字段的文档数量?

apache-spark - 有没有人能够将 elasticsearch xpack sql 与 Spark 一起使用?

elasticsearch - 多字段搜索查询字符串中的同义词

elasticsearch - Solr使用索引字段进行半径的空间搜索?

xml - 在 Apache Solr 中索引 XML 文件

elasticsearch - 为什么在Elasticsearch 0.90 more_like_this_field查询中不支持stop_words?

java - 在哪里可以找到有关使用 Lucene 和 Compass 的有用信息?

asp.net - ASP.NET 使用哪种搜索技术?