1.一种海明空间近似查询方法,其特征在于,包括步骤:
将原始数据库中的所有记录和查询数据,映射成海明空间中的哈希二进制向量,得到哈希数据库;
对哈希数据库中的二进制数据进行列重排序;
针对列重排序后新生成的数据建立索引结构,索引结构包含柱状图和倒排哈希索引;
解析查询,为各个数据分割分配相应的查询阈值。
2.根据权利要求1所述的海明空间近似查询方法,其特征在于,所述哈希数据库的获得方法为:针对每个记录和查询数据,检测当前数据的类型和结构;按照当前数据的类型和结构,从哈希函数集合中选择相应的哈希映射函数;通过所选择的哈希映射函数,将输入数据映射成哈希二进制向量。
3.根据权利要求1所述的海明空间近似查询方法,其特征在于,所述对哈希数据库中的二进制数据进行列重排序的方法为:设计基于列重排序的代价模型;对二进制数据进行初始化列分割;在初始化列分割后,进行近似分割。
4.根据权利要求3所述的海明空间近似查询方法,其特征在于,所述对二进制数据进行初始化列分割的方法为:初始化一个空的数据分割,选择一个数据列,如果该数据列对于当前数据分割能产生最小的信息熵,就被放入到当前数据分割中;选择下一数据列,重复进行相同处理,直到当前数据分割的大小达到上限,即产生第一个数据分割;之后,重复分割过程,直到所有的数据列被分配到相应的数据分割中。
5.根据权利要求3所述的海明空间近似查询方法,其特征在于,所述进行近似分割的方法为:迭代地把当前近似查询效果差距最大的两个数据列进行交换。
6.根据权利要求1所述的海明空间近似查询方法,其特征在于,所述为各个数据分割分配相应的查询阈值的方法为:
设计基于阈值分配的代价模型;
根据基于阈值分配的代价模型,采用动态规划算法进行查询阈值分配。
7.根据权利要求1所述的海明空间近似查询方法,其特征在于,所述海明空间近似查询方法还包括:根据索引结构抽取候选集,并逐一验证得到最终结果。
8.根据权利要求7所述的海明空间近似查询方法,其特征在于,所述根据索引结构抽取候选集,并逐一验证得到最终结果的方法为:
对于查询的每一个列分割及其对应的被分配的查询阈值,枚举所有可能的哈希数值;对于每个哈希数值,分别去预先建立的倒排索引中查找对应的键值,并抽取出对应的倒排表;当所有的倒排表抽取出来之后,去重并用海明距离公式逐一计算它们与查询的海明距离;如果计算的数值小于或等于给定的阈值,就返回作为其中一个结果。
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1-8中任一项所述的海明空间近似查询方法。