正排表是以文档的ID为关键字,表中记录文档中每一个字的位置信息,查找时扫描表中每一个文档中字的信息直到找出全部包含查询关键字的文档。性能
正排表结构如图1所示,这种组织方法在创建索引的时候结构比较简单,创建比较方便且易于维护;由于索引是基于文档创建的,如果有新的文档加入,直接为该文档创建一个新的索引块,挂接在原来索引文件的后面。如果有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。可是在查询的时候需对全部的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。 搜索引擎
尽管正排表的工做原理很是的简单,可是因为其检索效率过低,除非在特定状况下,不然实用性价值不大。索引
倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的全部文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置状况。文档
因为每一个字或词对应的文档数量在动态变化,因此倒排表的创建和维护都较为复杂,可是在查询的时候因为能够一次获得查询关键字所对应的全部文档,因此效率高于正排表。在全文检索中,检索的快速响应是一个最为关键的性能,而索引创建因为在后台进行,尽管效率相对低一些,但不会影响整个搜索引擎的效率。
倒排表的结构图如图2:get
正排索引是从文档到关键字的映射(已知文档求关键字),倒排索引是从关键字到文档的映射(已知关键字求文档)。效率