use*_*332 9 lucene solr inverted-index elasticsearch forward-indexing
我正在阅读有关倒排索引(由Solr,Elastic Search等文本搜索引擎使用)和我理解(如果我们以"Person"为例):
Person关系的属性被反转:
John -> PersonId(1), PersonId(2), PersonId(3)
London -> PersonId(1), PersonId(2), PersonId(5)
Run Code Online (Sandbox Code Playgroud)
我现在可以搜索"居住在伦敦的约翰"的人事记录
这不解决所有问题吗?为什么我们有前向(或常规数据库索引)?或者换句话说,在什么情况下常规索引是有用的?请解释.谢谢.
Ant*_*t P 20
您缺少的一点是前向索引和倒排索引之间没有真正的技术区别.在这种情况下,"前进"和"倒置"只是用于区分以下内容的描述性术语:
如果已经存在常规(前向)索引的概念,则倒排索引的概念才有意义.在搜索引擎的上下文中,前向索引将是术语向量; 特定文件中包含的术语列表.倒排索引将是包含给定术语的文档列表.
当你明白术语"前进"和"倒置"实际上只是用于描述你所谈论的索引性质的相对术语 - 而且真正的索引只是一个索引 - 你的问题确实没有意义更多.
以下是来自 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/
| 归档时间: |
|
| 查看次数: |
7070 次 |
| 最近记录: |