作者:Berlinale | 来源:互联网 | 2023-07-03 01:29
全文索引大体分为两个过程:索引的创建和搜索索引索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。索引
全文索引大体分为两个过程:索引的创建和搜索索引
索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。
搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。
索引里面究竟存些什么呢?
首先我们来看为什么顺序扫描的速度慢:
其实是我们想要搜索的信息和非结构化数据中所存储的信息不一致造成的。
非结构化数据中所存储的信息是每个文件包包含哪些字符串,也即几只文件,欲求字符串相对容易,也即是文件到字符串的映射。而我们想搜
索的信息是哪些文件包含此字符串,也即已知字符串,欲求文件,也即从字符串到文件的映射。两者恰恰相反。于是如果索引总能够保存从字
符串到文件的映射,则会大大提高搜索速度。
由于从字符串到文件的映射是文件到字符串的反向过程,于是保存这种信息的索引称为反向索引。
有人可能会说全文索引的确加快了搜索的速度,但是多了索引的过程,两者加起来不一定比顺序扫描快多少。
的确,加上索引的过程,全文检索不一定比顺序扫描快,尤其在数据量小的时候更是如此。而对一个很大量的数据创建索引也是一个很慢的过
程。然而两者还是有区别的,顺序扫描是每次都要扫描,而创建索引的过程仅仅需要一次,以后便是一劳永逸了,每次搜索,创建索引的过程
不必经过,仅仅搜索创建好的索引就可以了,这也是全文搜索相对于顺序扫描的优势之一:一次索引,多次使用。