一种索引树对象的创建及其索引方法和相关装置与流程

文档序号:16468470发布日期:2019-01-02 22:55阅读:159来源:国知局
一种索引树对象的创建及其索引方法和相关装置与流程

本申请涉及计算机处理的技术领域,特别是涉及一种索引树对象的创建及其索引方法和相关装置。



背景技术:

空间索引,即对空间数据查询,是对存储在介质上的数据位置信息进行描述,用于提高系统对数据获取的效率,也称为空间访问方法。

例如,在物流的等情景中,通常会对订单中的位置索引物流的业务区域,以确定处理该订单的业务运营点。

目前,四叉树索引、r树索引、geohash是常用的空间索引方式。

四叉树索引与r树索引类似,相当于确定4结点容量,不断均匀地田字格分隔区域;geohash也是网格式均匀划分区域,对poi(pointofinterest,信息点)进行一维网格字符串编码,最后对字符串进行搜索匹配。

对于四叉树或geohash,四叉树结点固定,相当于确定4结点容量,网格均匀划分,造成索引的效率较低;而对于r树,在结点较多重叠时,随机进行索引,造成索引的效率较低。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种索引树对象的创建及其索引方法和相关装置。

为了解决上述问题,本申请实施例公开了一种索引树对象的创建方法,包括:

确定业务区域;

设置多个结点容量;

分别按照所述多个结点容量对所述业务区域创建多个索引树对象;

在所述多个索引树对象中模拟索引所述业务区域,以选取目标索引树对象。

本申请实施例还公开了一种基于索引树对象的索引方法,所述索引树对象包括两层或两层以上结点,每个结点具有密度信息,所述结点包括叶子结点,所述叶子结点包含业务区域,所述方法包括:

获取目标位置数据;

根据所述密度信息在所述索引树对象中索引所述目标位置数据归属的叶子结点;

在所述叶子结点中确定所述目标位置数据归属的业务区域。

本申请实施例还公开了一种索引树对象的创建装置,包括:

业务区域确定模块,用于确定业务区域;

结点容量设置模块,用于设置多个结点容量;

索引树对象创建模块,用于分别按照所述多个结点容量对所述业务区域创建多个索引树对象;

索引树对象选择模块,用于在所述多个索引树对象中模拟索引所述业务区域,以选取目标索引树对象。

本申请实施例还公开了一种基于索引树对象的索引装置,所述索引树对象包括两层或两层以上结点,每个结点具有密度信息,所述结点包括叶子结点,所述叶子结点包含业务区域,所述装置包括:

目标位置数据获取模块,用于获取目标位置数据;

叶子结点索引模块,用于根据所述密度信息在所述索引树对象中索引所述目标位置数据归属的叶子结点;

业务区域确定模块,用于在所述叶子结点中确定所述目标位置数据归属的业务区域。

本申请实施例还公开了一种装置,包括:

一个或多个处理器;和

其上存储的一个或多个计算机可读介质中的指令,由所述一个或多个处理器执行时,使得装置执行上述索引树对象的创建中一个或多个的方法。

本申请实施例还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述索引树对象的创建中一个或多个的方法。

本申请实施例还公开了一种装置,包括:

一个或多个处理器;和

其上存储的一个或多个计算机可读介质中的指令,由所述一个或多个处理器执行时,使得装置执行上述基于索引树对象的索引中一个或多个的方法。

本申请实施例还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述基于索引树对象的索引中一个或多个的方法。

本申请实施例包括以下优点:

本申请实施例分别按照多个结点容量对业务区域创建多个索引树对象,在多个索引树对象中模拟索引业务区域,以根据索引的结果选取目标索引树对象,根据不同情况设置结点容量,避免了确定结点容量造成均匀地田字格分隔区域,使得索引树对象达到符合某个条件的最优状态,检索索引时判断位置数据与结点关系的次数,提高了索引树对象的索引效率。

本申请实施例在根据密度信息在索引树对象中索引目标位置数据归属的叶子结点,在叶子结点中确定目标位置数据归属的业务区域,在结点较多重叠时,通过密度信息作为选择的条件,提高了业务区域的索引准确度,从而提高了索引树对象的索引效率。

附图说明

图1是本申请一个实施例的一种索引树对象的创建方法的步骤流程图;

图2是本申请一个实施例的一种基于索引树对象的索引方法的步骤流程图;

图3是本申请一个实施例的一种索引树对象的区域示例图;

图4是本申请一个实施例的一种索引树对象的结构示意图;

图5是本申请一个实施例的一种索引树对象的局部区域示例图;

图6本申请一个实施例的一种索引树对象的创建装置的结构框图;

图7本申请一个实施例的一种基于索引树对象的索引装置的结构框图;

图8示意性地示出了可被用于实现本公开中所述的各个实施例的示例性系统。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请一个实施例的一种索引树对象的创建方法的步骤流程图,具体可以包括如下步骤:

步骤101,确定业务区域。

在具体实现中,本申请实施例可以应用在服务器中,该服务器可以为单独的服务器,也可以为服务器集群,例如,分布式系统,等等,本申请实施例对此不加以限制。

业务区域,可以指业务运营点提供业务的范围,该业务区域可以由本领域技术人员根据业务的实际情况而设置。

对于物流领域而言,业务区域包括物流配送区域。

例如,某一物流的业务运营点负责a街道与b街道的货物的派件、收件,则该物流的业务运营点的物流配送区域(业务区域)为a街道与b街道。

步骤102,设置多个结点容量。

结点容量,可以是指在索引树对象中,每一层的某个结点最大可以含有的、下一层的结点的数量。

步骤103,分别按照所述多个结点容量对所述业务区域创建多个索引树对象。

在本申请实施例中,索引树对象可以指用于索引的树状结构。

该索引树对象包括两层或两层以上的结点,结点包括叶子结点和非叶子结点(即除叶子结点外的其他结点)。

其中,叶子结点包含业务区域,位于上一层的结点包含数量在结点容量内的、位于下一层的结点。

在本申请的一个实施例中,步骤103可以包括如下子步骤:

子步骤s11,生成包含所述业务区域的最小矩形区域,作为索引树对象的叶子结点。

子步骤s12,生成包含数量在所述结点容量内的叶子结点的最小矩形区域,作为所述索引树对象上一层的非叶子结点;

子步骤s13,判断所述索引树对象的层数是否到达预设的阈值;若是,则执行子步骤s14,若否,则执行子步骤s15。

子步骤s14,输出所述索引树对象。

子步骤s15,针对最上层的非叶子节,生成包含数量在所述结点容量内的非叶子结点的最小矩形区域,作为所述索引树对象上一层的非叶子结点,返回执行子步骤s13。

在本申请实施例中,构建类型为r树的索引树对象,r树是一种用于处理多维数据的数据结构,用来访问二维或者更高维区域对象组成的空间数据。

r树是一棵平衡树,树上有两类结点,即叶子结点和非叶子结点。每一个结点由若干个索引项构成。

对于叶子结点,索引项形如(index,obj_id,density)。其中,index表示包围空间数据对象的最小外接矩形mbr,obj_id标识一个空间数据对象,density为密度信息。

对于一个非叶子结点,它的索引项形如(index,child_pointer,density)。child_pointer指向该结点的子结点,index仍指一个矩形区域,该矩形区域包围了子结点上数量在结点容量内的索引项mbr的最小矩形区域,density为密度信息。

在本申请实施例中,可以预先设置层数,叶子结点作为底层,每构建一次非叶子节作为上一层,直至到达该层数,输出类型为r树的索引树对象。

当然,上述索引树对象只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他索引树对象,例如,四叉树、kd树(k-dimensionaltree,一种分割k维数据空间的数据结构)、对二维或多维空间进行某种规则划分的树状结构,等等,本申请实施例对此不加以限制。另外,除了上述索引树对象外,本领域技术人员还可以根据实际需要采用其它索引树对象,本申请实施例对此也不加以限制。

步骤104,在所述多个索引树对象中模拟索引所述业务区域,以选取目标索引树对象。

在实际应用中,可以针对在不同结点容量下创建的索引树对象进行索引,以索引的结果对该索引树对象进行比较,以选择符合某一条件的索引树对象。

在本申请的一个实施例中,步骤104可以包括如下子步骤:

子步骤s21,获取样本位置数据。

在一个示例中,可以查找历史的订单数据,从历史的订单数据中提取样本位置数据。

在此示例中,在交易平台、物流平台的服务器中,可以存储用户历史提交的订单数据,例如,购物的订单数据、快递的订单数据,等等。

在这些订单数据中,用户通常需要填写地址数据,该地址数据可以为购买的商品的运送目的地,货物的运送目的地或收取地,等等,本示例可以将订单数据中的位置数据作为样本位置数据。

在此示例中,该样本位置数据为真实派件的地址数据。

在另一个示例中,可以模拟订单数据的分布信息,基于分布信息生成样本位置数据。

在此示例中,通过寻找一组在状态空间中传播的随机样本来近似的表示订单数据的空间分布密度,例如,通过人口密度等信息模拟订单数据的分布信息,即人口密度越大,订单数据可能更多。

在此示例中,该样本位置数据为模拟派件的地址数据。

当然,上述样本位置数据的获取方式只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他样本位置数据的获取方式,本申请实施例对此不加以限制。另外,除了上述样本位置数据的获取方式外,本领域技术人员还可以根据实际需要采用其它样本位置数据的获取方式,本申请实施例对此也不加以限制。

子步骤s22,在所述多个索引树对象中索引所述样本位置数据所属的业务区域,以计算多个索引效率。

子步骤s23,基于索引效率从所述多个索引树对象中选取目标索引树对象。

在本申请实施例中,可以通过索引效率自适应确定结点容量,从而选择索引效率最高的索引树对象。

在具体实现中,可以采用样本位置数据在不同结点容量的索引树对象中索引业务区域,以索引时间、cpu(centralprocessingunit,中央处理器)占用率、内存占用率等参数表征索引效率,即索引效率可以包括索引时间、cpu占用率、内存占用率,等等。

一般情况下,可以从多个索引树对象中选取索引效率最高的索引树对象作为目标索引树对象。

对于不同的索引效率而言,具有不同的方式比较索引效率的高低。一般而言,索引的时间越小、cpu占用率越低、内存占用率越低,其搜索效率越高。

以索引时间为例,从多个索引树对象中选取索引时间最小的索引树对象作为目标索引树对象。

当然,上述选取方法只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他选取方法,例如,对索引时间、cpu占用率、内存占用率配置权重之后求和,选取权重和最小的索引树对象为目标索引树对象,等等,本发明实施例对此不加以限制。另外,除了上述选取方法外,本领域技术人员还可以根据实际需要采用其它选取方法,本发明实施例对此也不加以限制。

在本申请的另一个实施例中,步骤104可以包括如下子步骤:

子步骤s24,统计在所述结点的区域范围内、样本位置数据的密度信息。

在具体实现中,可以对索引树对象中的每个结点,统计在其区域的范围内,样本位置数据的密度信息,以方便进行索引。

因此,对于子步骤s22,在统计了结点的密度信息的情况下,在索引样本位置数据所属的业务区域时,当样本位置数据所处的结点的数量为两个或两个以上时,可以基于密度信息选择样本位置数据归属的结点。

在此情况下,子步骤s22进一步可以包括如下子步骤:

子步骤s221,根据所述密度信息在所述索引树对象中索引所述样本位置数据归属的叶子结点;

子步骤s222,在所述叶子结点中确定所述样本位置数据归属的业务区域。

在一种实施方式中,子步骤s221进一步可以包括如下子步骤:

子步骤s2211,遍历所述目标位置数据在每层归属的非叶子结点,查找所述非叶子结点在下一层包含的非叶子结点或叶子结点;

子步骤s2212,在下一层包含的非叶子结点或叶子结点中识别所述样本位置数据所处区域范围对应的非叶子结点或叶子结点;

子步骤s2213,判断所述样本位置数据所处区域范围对应的非叶子结点或叶子结点是否重叠;若是,则执行子步骤s2214,若否,则执行子步骤s2215。

子步骤s2214,基于密度信息选择所述样本位置数据归属的非叶子结点或叶子结点;

子步骤s2215,确定为所述样本位置数据归属的非叶子结点或叶子结点。

在一种实施方式中,子步骤s222进一步可以包括如下子步骤:

子步骤s2221,判断所述样本位置数据是否位于所述叶子结点包含的业务区域的区域范围内;若是,则执行子步骤s2222,若否,则执行子步骤s2223。

子步骤s2222,确定所述样本位置数据归属于所述业务区域;

子步骤s2223,向上逐层查询查找重叠的非叶子结点或叶子结点,返回执行子步骤s2214。

由于子步骤s221(包括子步骤s2211-子步骤s2215)、子步骤s222(包括子步骤s2221-子步骤s2223)与步骤202(包括子步骤s31-子步骤s35)、步骤203(包括子步骤s41-子步骤s43)的应用基本相似,所以描述的比较简单,相关之处参见步骤202、步骤203的部分说明即可,本申请实施例在此不加以详述。

当然,若未统计结点的密度信息,也可以通过其他方式索引样本位置数据所属的业务区域,例如,当样本位置数据所处的结点的数量为两个或两个以上时,可以随机选择样本位置数据归属的结点,等等,本申请实施例对此不加以限制。

本申请实施例分别按照多个结点容量对业务区域创建多个索引树对象,在多个索引树对象中模拟索引业务区域,以根据索引的结果选取目标索引树对象,根据不同情况设置结点容量,避免了确定结点容量造成均匀地田字格分隔区域,使得索引树对象达到符合某个条件的最优状态,检索索引时判断位置数据与结点关系的次数,提高了索引树对象的索引效率。

参照图2,示出了本申请一个实施例的一种基于索引树对象的索引方法的步骤流程图,具体可以包括如下步骤:

步骤201,获取目标位置数据。

在具体实现中,本申请实施例可以应用在服务器中,该服务器可以为单独的服务器,也可以为服务器集群,例如,分布式系统,等等,本申请实施例对此不加以限制。

在一个示例中,可以接收订单数据,从订单数据中提取目标位置数据。

在此示例中,在交易平台、物流平台的服务器中,可以接收用户提交的订单数据,例如,购物的订单数据、快递的订单数据,等等。

在这些订单数据中,用户通常需要填写地址数据,该地址数据可以为购买的商品的运送目的地,货物的运送目的地或收取地,等等,本示例可以将订单数据中的位置数据作为目标位置数据。

步骤202,根据所述密度信息在所述索引树对象中索引所述目标位置数据归属的叶子结点。

在具体实现中,索引树对象包括两层或两层以上结点,每个结点具有密度信息。

结点包括叶子结点和非叶子结点,叶子结点包含所述业务区域,位于上一层的结点包含数量在结点容量内的、位于下一层的结点。

业务区域一般是不规则且相互隔离的,可以相接但并不重叠,但是,结点的区域范围可能存在重叠,若目标位置数据位于重叠的区域范围内,可能索引至两个或两个以上的结点,因此,可以以密度信息作为选择的条件,从两个或两个以上的结点中选择其中一个结点作为目标位置数据归属的结点。

对于物流领域而言,业务区域包括物流配送区域。

在本申请的一个实施例中,步骤202可以包括如下子步骤:

子步骤s31,遍历所述目标位置数据在每层归属的非叶子结点,查找所述非叶子结点在下一层包含的非叶子结点或叶子结点。

在本申请实施例中,可以从根结点开始遍历,遍历每一层的目标位置数据归属的非叶子结点,直至遍历至叶子结点。

对于每一层中目标位置数据归属的非叶子结点,可以通过包含父结点与子结点之间的关系,查询其在下一层包含的非叶子结点或叶子结点。

子步骤s32,在下一层包含的非叶子结点或叶子结点中识别所述目标位置数据所处区域范围对应的非叶子结点或叶子结点。

子步骤s33,判断所述目标位置数据所处区域范围对应的非叶子结点或叶子结点是否重叠;若是,则执行子步骤s34,若否,则执行子步骤s35。

子步骤s34,基于密度信息选择所述目标位置数据归属的非叶子结点或叶子结点。

子步骤s35,确定为所述目标位置数据归属的非叶子结点或叶子结点。

如果目标位置数据处于一个非叶子结点或叶子结点的区域范围内,则目标位置数据所处区域范围对应的非叶子结点或叶子结点并不重叠,可以确定该目标位置数据归属于该非叶子结点或叶子结点。

如果目标位置数据同时处于两个或两个以上的非叶子结点或叶子结点的区域范围内,则目标位置数据所处区域范围对应的非叶子结点或叶子结点是否重叠,可以采用密度信息选择其中一个非叶子结点或叶子结点作为目标位置数据归属的非叶子结点或叶子结点。

一般情况下,可以选择密度信息最高的非叶子结点或叶子结点作为目标位置数据归属的非叶子结点或叶子结点。

如果下一层该目标位置数据归属于的结点为非叶子结点,则进行下一次遍历。

如果下一层该目标位置数据归属于的结点为叶子结点,则暂停遍历。

步骤203,在所述叶子结点中确定所述目标位置数据归属的业务区域。

在具体实现中,由于叶子结点是包含业务区域,两者的区域范围不比一定一致,因此,进行进一步的空间位置的访问,以确定目标位置数据归属的业务区域。

若确定了目标位置数据归属的业务区域,则可以进行相关的业务操作。

例如,若目标位置数据为订单数据中的位置数据,则可以将该订单数据分配至该业务区域所属的业务运营点,进行收件、派件等处理。

在本申请的一个实施例中,步骤203可以包括如下子步骤:

子步骤s41,判断所述目标位置数据是否位于所述叶子结点包含的业务区域的区域范围内;若是,则执行子步骤s42,若否,则执行子步骤s43。

子步骤s42,确定所述目标位置数据归属于所述业务区域。

子步骤s43,向上逐层查询查找重叠的非叶子结点或叶子结点,返回执行子步骤s34。

在本申请实施例中,如果目标位置数据位于叶子结点中的业务区域的区域范围内,则可以确定目标位置数据归属于该业务区域。

如果目标位置数据位于叶子结点中的业务区域的区域范围外,则表示当前的路径可能出错,可以向上逐层查找重叠的非叶子结点或叶子结点,返回执行子步骤s34,从除已遍历的非叶子结点或叶子结点之外的其他非叶子结点或叶子结点继续遍历。

此时,在执行子步骤s34时,通常从其他非叶子结点或叶子结点中选择密度信息最高的非叶子结点或叶子结点作为目标位置数据归属的非叶子结点或叶子结点。

在某些情况下,例如,定位至河里、海上等位置,遍历完整个索引树对象,未能确定目标位置数据归属的业务区域,此时可以输出空的结果。

本申请实施例在根据密度信息在索引树对象中索引目标位置数据归属的叶子结点,在叶子结点中确定目标位置数据归属的业务区域,在结点较多重叠时,通过密度信息作为选择的条件,提高了业务区域的索引准确度,从而提高了索引树对象的索引效率。

在本申请的一个实施例中,索引树对象可以通过如下方式进行创建:

步骤s51,确定业务区域;

步骤s52,设置多个结点容量;

步骤s53,分别按照所述多个结点容量对所述业务区域创建多个索引树对象;

步骤s54,在所述多个索引树对象中模拟索引所述业务区域,以根据索引的结果选取满足预设条件的索引树对象。

由于步骤s51-步骤s54与步骤101-步骤104的应用基本相似,所以描述的比较简单,相关之处参见步骤101-步骤104的部分说明即可,本申请实施例在此不加以详述。

为使本领域技术人员更好地理解本申请实施例,在本说明书中,将物流运营点的物流区域作为业务区域的一种示例进行说明。

如图3所示,在北京市中,历史的订单数据(包括样本位置数据)是二维空间下的点,物流运营点的物流区域为多边形p1、p2、p3、p4、p5、p6、p7、p8、p9。

设定索引树对象的结点容量为3、层数为3。

分别对物流区域p1、p2、p3、p4、p5、p6、p7、p8、p9生成mbr,分别为r1、r2、r3、r4、r5、r6、r7、r8、r9(需要说明的是,r4、r5、r6、r7、r8、r9在图3中未示出)。

r1、r2、r3、r4、r5、r6、r7、r8、r9为叶子结点,属于第一层。

生成包含r1、r2、r3的mbr,即r10,其中,r10为父结点,r1、r2、r3为子结点。

生成包含r4、r7、r8的mbr,即r11,其中,r12为父结点,r4、r7、r8为子结点。

生成包含r5、r6、r9的mbr,即r12,其中,r12为父结点,r5、r6、r9为子结点。

r10、r11、r12为非叶子结点,属于第二层。

生成包含r10、r11、r12的mbr,即r13,其中,r13为父结点,r10、r11、r12为子结点。

r13为非叶子结点,也称根结点,属于第三层。

同时,对每个mbr统计订单数据(包括样本位置数据)的密度density。

至此,结点容量为3的索引树对象构建完成,构建完成的索引树对象如图4所示。

调整结点容量,分别设置为2、4,重复上述过程,构建结点容量为2的索引树对象、结点容量为2的索引树对象。

以历史的订单数据或模拟的订单数据的分布信息在结点容量为2、3、4的索引树对象索引物流区域,统计索引时间。

当索引时间出现极值时,即可认为找到最佳的结点容量。

如果结点容量3的索引树对象的索引时间比结点容量2的索引树对象和结点容量4的索引树对象的索引时间少,则可认为结点容量3的索引树对象为最佳。

如图5所示,为图3中区域301的局部放大图,如果接收到一个新的订单数据,其目标位置数据为点m。

在索引时,加载索引树对象,在第一层中选择r13(即根结点)。

在第二层中,r13包含r10、r11、r12,其中,点m位于r10和r11的区域范围内。

由于r10的密度信息小于r11的密度信息,因此,在第二层中确定点m属于r11。

在第三层中,r11包含r4、r7、r8(需要说明的是,r4、r7、r8在图5中未示出),其中,点点m位于r4的区域范围内,即点m属于叶子结点r4。

如果点m位于r4包含的物流区域p4中,则确定点m属于物流区域p4,完成索引。

如果点m位于r4包含的物流区域p4外,则向上层查找重叠的r10和r11,由于r11已遍历,则从r10再次向下层进行遍历。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图6,示出了本申请一个实施例的一种索引树对象的创建装置的结构框图,具体可以包括如下模块:

业务区域确定模块601,用于确定业务区域;

结点容量设置模块602,用于设置多个结点容量;

索引树对象创建模块603,用于分别按照所述多个结点容量对所述业务区域创建多个索引树对象;

索引树对象选择模块604,用于在所述多个索引树对象中模拟索引所述业务区域,以选取目标索引树对象。

在具体实现中,所述索引树对象包括两层或两层以上的结点,所述结点包括叶子结点和非叶子结点,所述叶子结点包含所述业务区域,位于上一层的结点包含数量在所述结点容量内的、位于下一层的结点。

在一种实施方式中,所述索引树对象创建模块603包括:

叶子结点生成子模块,用于生成包含所述业务区域的最小矩形区域,作为索引树对象的叶子结点;

第一非叶子结点生成子模块,用于生成包含数量在所述结点容量内的叶子结点的最小矩形区域,作为所述索引树对象上一层的非叶子结点;

层数判断子模块,用于判断所述索引树对象的层数是否到达预设的阈值;若是,则调用索引树对象输出子模块,若否,则调用第二非叶子结点生成子模块;

索引树对象输出子模块,用于输出所述索引树对象;

第二非叶子结点生成子模块,用于针对最上层的非叶子节,生成包含数量在所述结点容量内的非叶子结点的最小矩形区域,作为所述索引树对象上一层的非叶子结点。

在一种实施方式中,所述索引树对象选择模块604包括:

样本位置数据获取子模块,用于获取样本位置数据;

索引效率计算子模块,用于在所述多个索引树对象中索引所述样本位置数据所属的业务区域,以计算多个索引效率;

索引效率选取子模块,用于基于所述多个索引效率从所述索引树对象中选取目标索引树对象。

在一种实施方式中,所述样本位置数据获取子模块包括:

订单数据查找单元,用于查找历史的订单数据;

样本位置数据提取单元,用于从所述历史的订单数据中提取样本位置数据;

和/或,

订单数据模拟单元,用于模拟订单数据的分布信息;

样本位置数据生成单元,用于基于所述分布信息生成样本位置数据。

在一种实施方式中,所述索引效率选取子模块包括:

索引时间选取单元,用于从所述多个索引树对象中选取索引时间最小的索引树对象作为目标索引树对象。

在一种实施方式中,每个结点具有密度信息,所述索引效率计算子模块包括:

样本叶子结点索引子模块,用于根据所述密度信息在所述索引树对象中索引所述样本位置数据归属的叶子结点;

样本业务区域确定子模块,用于在所述叶子结点中确定所述样本位置数据归属的业务区域。

在一种实施方式中,所述样本叶子结点索引子模块包括:

样本下层结点查找子模块,用于遍历所述目标位置数据在每层归属的非叶子结点,查找所述非叶子结点在下一层包含的非叶子结点或叶子结点;

样本位置所处结点识别子模块,用于在下一层包含的非叶子结点或叶子结点中识别所述样本位置数据所处区域范围对应的非叶子结点或叶子结点;

样本结点重叠判断子模块,用于判断所述样本位置数据所处区域范围对应的非叶子结点或叶子结点是否重叠;若是,则调用样本密度信息选择子模块,若否,则选择样本结点归属确定子模块;

样本密度信息选择子模块,用于基于密度信息选择所述样本位置数据归属的非叶子结点或叶子结点;

样本选择结点归属确定子模块,用于确定为所述样本位置数据归属的非叶子结点或叶子结点。

在一种实施方式中,所述样本业务区域确定子模块包括:

样本区域范围判断子模块,用于判断所述样本位置数据是否位于所述叶子结点包含的业务区域的区域范围内;若是,则调用样本业务区域确定子模块,若否,则调用样本重叠结点遍历子模块;

样本业务区域确定子模块,用于确定所述样本位置数据归属于所述业务区域;

样本重叠结点遍历子模块,用于向上逐层查询查找重叠的非叶子结点或叶子结点,返回调用样本密度信息选择子模块。

在一种实施方式中,所述索引树对象选择模块604还包括:

密度信息统计子模块,用于统计在所述结点的区域范围内、样本位置数据的密度信息。

在一种实施方式中,所述业务区域包括物流配送区域。

参照图7,示出了本申请一个实施例的一种基于索引树对象的索引装置的结构框图,所述索引树对象包括两层或两层以上结点,每个结点具有密度信息,所述结点包括叶子结点,所述叶子结点包含业务区域,所述装置具体可以包括如下模块:

目标位置数据获取模块701,用于获取目标位置数据;

叶子结点索引模块702,用于根据所述密度信息在所述索引树对象中索引所述目标位置数据归属的叶子结点;

业务区域确定模块703,用于在所述叶子结点中确定所述目标位置数据归属的业务区域。

在一种实施方式中,所述目标位置数据获取模块701包括:

订单数据接收子模块,用于接收订单数据;

目标位置数据提取子模块,用于从所述订单数据中提取目标位置数据。

在一种实施方式中,所述索引树对象还包括非叶子结点;

所述叶子结点索引模块702包括:

下层结点查找子模块,用于遍历所述目标位置数据在每层归属的非叶子结点,查找所述非叶子结点在下一层包含的非叶子结点或叶子结点;

位置所处结点识别子模块,用于在下一层包含的非叶子结点或叶子结点中识别所述目标位置数据所处区域范围对应的非叶子结点或叶子结点;

结点重叠判断子模块,用于判断所述目标位置数据所处区域范围对应的非叶子结点或叶子结点是否重叠;若是,则调用密度信息选择子模块,若否,则选择结点归属确定子模块;

密度信息选择子模块,用于基于密度信息选择所述目标位置数据归属的非叶子结点或叶子结点;

选择结点归属确定子模块,用于确定为所述目标位置数据归属的非叶子结点或叶子结点。

在一种实施方式中,所述业务区域确定模块703包括:

区域范围判断子模块,用于判断所述目标位置数据是否位于所述叶子结点包含的业务区域的区域范围内;若是,则调用业务区域确定子模块,若否,则调用重叠结点遍历子模块;

业务区域确定子模块,用于确定所述目标位置数据归属于所述业务区域;

重叠结点遍历子模块,用于向上逐层查询查找重叠的非叶子结点或叶子结点,返回调用密度信息选择子模块。

在一种实施方式中,还可以包括如下模块:

业务区域确定模块,用于确定业务区域;

结点容量设置模块,用于设置多个结点容量;

索引树对象创建模块,用于分别按照所述多个结点容量对所述业务区域创建多个索引树对象;

索引树对象选择模块,用于在所述多个索引树对象中模拟索引所述业务区域,以根据索引的结果选取满足预设条件的索引树对象。

在一种实施方式中,所述业务区域包括物流配送区域。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开的实施例可被实现为使用任意适当的硬件和/或软件进行想要的配置的系统。图8示意性地示出了可被用于实现本公开中所述的各个实施例的示例性系统800。

对于一个实施例,图8示出了示例性系统800,该系统具有一个或多个处理器802、被耦合到(一个或多个)处理器802中的至少一个的系统控制模块(芯片组)804、被耦合到系统控制模块804的系统存储器806、被耦合到系统控制模块804的非易失性存储器(nvm)/存储设备808、被耦合到系统控制模块804的一个或多个输入/输出设备810,以及被耦合到系统控制模块806的网络接口812。

处理器802可包括一个或多个单核或多核处理器,处理器802可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,系统800能够作为本申请实施例中所述的服务器。

在一些实施例中,系统800可包括具有指令的一个或多个计算机可读介质(例如,系统存储器806或nvm/存储设备808)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本公开中所述的动作的一个或多个处理器802。

对于一个实施例,系统控制模块804可包括任意适当的接口控制器,以向(一个或多个)处理器802中的至少一个和/或与系统控制模块804通信的任意适当的设备或组件提供任意适当的接口。

系统控制模块804可包括存储器控制器模块,以向系统存储器806提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。

系统存储器806可被用于例如为系统800加载和存储数据和/或指令。对于一个实施例,系统存储器806可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,系统存储器806可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。

对于一个实施例,系统控制模块804可包括一个或多个输入/输出控制器,以向nvm/存储设备808及(一个或多个)输入/输出设备810提供接口。

例如,nvm/存储设备808可被用于存储数据和/或指令。nvm/存储设备808可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。

nvm/存储设备808可包括在物理上作为系统800被安装在其上的设备的一部分的存储资源,或者其可被该设备访问丽不必作为该设备的一部分。例如,nvm/存储设备808可通过网络经由(一个或多个)输入/输出设备810进行访问。

(一个或多个)输入/输出设备810可为系统800提供接口以与任意其他适当的设备通信,输入/输出设备810可以包括通信组件、音频组件、传感器组件等。网络接口812可为系统800提供接口以通过一个或多个网络通信,系统800可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合进行无线通信。

对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。

在各个实施例中,系统800可以但不限于是:服务器。在各个实施例中,系统800可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统800包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。

其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种索引树对象的创建及其索引方法和相关装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1