一:前言
在操作数据库时,使用索引查找数据一般都是最有效率。但是,当开发一个大型项目时,比如说搜索引擎,操作的数据很多,有很多的用户进行检索时。数据库系统响应结果的速度就很慢了。
因此,在搜索引擎中,或者是对海量数据的操作,我们就要换掉传统的正向索引(Forward Index)(按照顺序依次一个个检索数据源),要使用一种叫倒排索引的技术来检索数据。
二:引言
1.概念解析:
倒排索引(Inverted Index),笔者和大家一样,在一开始时,以为它就是正向索引的反义词,操作应该就是正向索引反过来,倒序检索。
其实啊,有可能是因为翻译有点渣,直接根据Invert 有颠倒的意思意译,然后大家都这么用了。其实,在理解了其核心思想之后。
称为反向索引更为合理。
2.原理:
关键词------>文档的映射
3.应用:
首先,服务器端创建倒排索引
①创建文档列表:将所有的原始数据源进行编号。记录下文档编号以及文档内容,形成文档列表。
②创建倒排索引列表:将文档数据进行分词,会得到很多的词条。对词条进行编号,以词条创建索引。记录下词条编号、词条、词条所在文档编号到列表中,形成了倒排索引列表。
词条所在列表就是倒排列表,也称反向列表;词条就是倒排索引,也称反向索引。
然后,客户端用户搜索
①分词操作:服务器端会对用户输入的数据进行分词,得到要搜索的所有词条。
②匹配列表:分词得到的词条就是倒排索引,根据这些词条在倒排索引列表中找到对应文档编号。
③找到文档:根据得到的文档编号到文档列表中查找文档内容。
最后,输出检索结果。
三:尾言
①.倒排索引称之为反向索引更好。
②.正排索引就是通过文档找关键词。
③.倒排索引就是通过词条查找文档。