看下面这个表格里的文档内容:
如果我这时候想要在这么多文档中查找带有 比亚迪
的我要怎么查,传统这个查询里面我想查这个比亚迪
的话。就是先在文档1里面搜索一下有没有 比亚迪
,没有,我在到文档2中查找比亚迪
,还是没有,然后到文档3里面查询也是没有比亚迪
的,再到文档4里面查还是没有 比亚迪
,直到到文档5里面才找到比亚迪的文档信息。
然后再把比亚迪
的这个文档5的信息再返回给客户端进行展示起来,这就是传统方式的正排索引,其实他的查询效率特别的低。
接下来说下什么是倒排索引
其实你像很多搜索引擎技术(比如:Solr、Elasticsearch、Lucene)索引用的都是倒排索引,那倒排索引到底是什么意思?
倒排索引会根据你的文档内容把一些关键字做一些分词,相当于用关键字定位到你的文档内容,这是什么意思?
举个例子,还是以这个文档讲一下,这5条文档里面全文检索首先会分析一下,把一些关键字进行整合起来,如下列表所示:
比如说这个 小
可能是经常搜到的关键字,还有一家
也是比较多的,包括