【技术实现步骤摘要】
一种基于高维数据的范围查询索引方法
[0001]本专利技术涉及数据库相似性搜索
,具体为一种基于高维数据的范围查询索引方法。
技术介绍
[0002]在当今社会中,众所周知数据无处不在,它出现在现实生活中的各个领域。处于大空间数据时代,每天都会产生万亿字节的多维数据。对这些规模庞大的高维数据,我们要对其进行分析处理使其发挥价值。相似性搜索就是其中关键一步。相似性搜索目的是寻找与给定对象相似的对象。而范围查询是相似性搜索领域核心部分之一。给定查询对象集合给定对象相似的对象。而范围查询是相似性搜索领域核心部分之一。给定查询对象集合其中距离阈值τ,距离函数dist(.,.),范围查询的任务是返回数据集D中所有距离查询q在给定距离阈值τ内的查询对象。它对文本搜索、图像搜索、产品推荐等都很重要。
[0003]目前解决当前相似性搜索问题的方法有传统的精确查询方法,例如EPT、GANT、LC、M
‑
Tree等;近似查询方法,例如属于图结构的HNSW、HVS方法,属于量化的VAQ、PQ方法,属于哈希的OASIS ...
【技术保护点】
【技术特征摘要】
1.一种基于高维数据的范围查询索引方法,其特征在于包括以下步骤:步骤一:对数据库中的数据进行降维处理,所述数据为高维数据;步骤二:基于降维处理后的数据,将降到相同维度的数据作为一类,并将类按升序排列,然后对排序后的所有类进行合并分块,合并分块策略为:每个块内包含的不同维度的数量相同,每个块内不同维度的数量为1
‑
10个;步骤三:在每个分块内根据数据分布情况随机均匀选取多个数据,并利用多种索引分别对选取的数据进行查询,然后记录查询时间,在多种索引中选取最优索引作为每个分块的索引,之后在每个分块内确定最高维度,并将分块内其余维度调整至最高维度;步骤四:在数据库中抽取符合均匀分布的多个数据,并在抽取的数据上增加噪声,将多个包含噪声的数据作为查询工作负载Q,在所述查询工作负载Q中,每个数据为一个查询q;步骤五:针对每个查询q,在数据库中,利用M
‑
tree做距离阈值τ的第一范围查询,所述第一范围查询具体为:以查询q为中心点,以阈值τ为半径,得到一个超球体,所述超球体内包含的数据即为标签;步骤六:针对每个查询q,在数据库中,做距离阈值τ的第二范围查询,所述第二范围查询具体为:针对查询q进行降维,得到查询q',然后确定查询q'所在的分块B,并使查询q'的维度与分块B的维度相同,在该分块中以查询q'为中心,以阈值τ为半径,得到一个候选点集,并将候选点集中的数据以及查询q'恢复到原来的维度,得到恢复数据和查询q”,然后分别计算每个恢复数据与查询q”的欧式距离,若不大于距离阈值τ,则将该恢复数据作为答案集中的数据,计算完所有恢复数据与查询q”的距离,得到答案集;步骤七:将第一范围查询与第二范围查询进行比对,确定答案集中的数据与标签是否一一对应,若存在不对应,则基于第二范围查询中的分块B进行左右跨块搜索,直至不存在不对应为止,即完成查询;所述基于第二范围查询中的分块B进行左右跨块搜索的具体步骤为:步骤七一:以分块B为中心,向左和向右分别选取一个块,然后使左侧块内数据的维度与查询q'的维度相同,之后使查询q'的维度与右侧块的维度相同;步骤七二:若仍存在不对应,则令步骤七一中向左和向右分别选取的块数加一,然后使左侧所有块内数据的维度与查询q'的维度相同,之后使查询q'的维度与最右侧块的维度相同;步骤七三:重复步骤七二进行迭代,直至不存在不对应为止。2.根据权利要求1所述的一种基于高维数据的范围查询索引方法,其特征在于所述步骤六和步骤七替换为:步骤六:针对每个查询q,在数据库中,做距离阈值τ的第二范围查询,所述第二范围查询具体为:针对每个查询q进行降维,得到查询q',然后确定查询q'所需要查找的分...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。