索引的定义
索引技术是通过有结构、无结构的数据以一定规则存储在相应介质上,并同时提供一种访问方式的技术。从定义中可以看出,索引技术的核心是关于如何存储与访问信息,当在实际问题中面临选择何种索引技术或工具时,首先需要了解数据量的大小、数据的格式,是即时访问还是批量查询等等,有时还需要结合存储介质,比如是否使用缓存或中间缓存文件。
分类
本文给出的分类参照文献[1],并补充了自己的理解,分类层次结构如图所示。人工智能方法与非人工智能方法的区别在于算法是否对数据的语义建模,人工智能方法通过找出数据之间的语义相似性或语义逻辑关系,可通过语义推理进行查询。(其实,这种分类个人觉得是不合适的,虽然一部分哈希算法不考虑数据的语义关系,但是现在也有一些哈希方法和向量量化算法在通过DNN提取语义特征后,也可以进行语义推理了)。
[1]Adamu F B, Habbal A, Hassan S, et al. A Survey On Big Data Indexing Strategies[C]//4th International Conference on Internet Applications, Protocol and Services (NETAPPS2015). Cyberjaya, Malaysia. 2015.
[2]Wang J, Zhang T, Song J, et al. A survey on learning to hash[J]. arXiv preprint arXiv:1606.00185, 2016.
[3] (关于hashing)http://cs.nju.edu.cn/lwj/L2H.html