搜索方法和装置制造方法及图纸

技术编号:18575913 阅读:21 留言:0更新日期:2018-08-01 10:55
本发明专利技术公开了一种搜索方法和装置。其中,该方法包括:获取用于表示第一区域的第一希尔伯特编码;在未获取到地域信息的情况下,将第一希尔伯特编码依次与第一集合中每个元素进行匹配,将匹配成功的元素构成的集合作为第二集合;依次获取第一终端的地理位置与第二集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为目标元素;在获取到地域信息的情况下,将第一希尔伯特编码依次与第三集合中每个元素进行匹配,将匹配成功的元素构成的集合作为第四集合;依次获取第一终端的地理位置与第四集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为目标元素。本发明专利技术解决了现有技术中无法快速、准确进行搜索的技术问题。

Search methods and devices

The invention discloses a method and device for searching. The method includes: obtaining the first Hilbert code for representing the first region; in the case of no access to the geographical information, the first Hilbert code matches each element in the first set in turn, and the set of the successful elements is matched as the second set; the first terminal is obtained in turn. The distance between the location and the geographical position of each element in the second set; the element corresponding to the smallest distance as the target element; in the case of obtaining the geographic information, the first Hilbert code matches each element in the third set in turn, and the set of elements matched to the work is taken as the fourth set. In turn, the distance between the geographical position of the first terminal and the geographical position of each element in the fourth set is obtained in turn; the element corresponding to the minimum distance is used as the target element. The invention solves the technical problems that the existing technology can not search quickly and accurately.

【技术实现步骤摘要】
搜索方法和装置
本专利技术涉及搜索领域,具体而言,涉及一种搜索方法和装置。
技术介绍
用户搜索离自身最近的餐馆、银行、医院等的搜索问题可以归纳为NNS(NearestNeighborSearch)问题,一般称为最近邻问题。最近邻问题的数学表述是:在M空间中有集合S,和一个同属于M空间的查询点q,找出S中离q最近的点。以用户搜索最近的医院为例进行说明,假设用户所在的城市是北京市,现有技术中使用线性搜索方法,即,利用用户的经纬度信息和医院的经纬度信息,依次计算用户与北京市每个医院之间的距离,选择出最小的距离对应的医院作为搜索结果,即,距离用户最近的医院。线性搜索方法简单可靠,但是有一个很大的缺点:当备选点很多(例如一个城市的医院数量非常多)时,这种搜索方法需要计算用户与每一个备选点之间的距离,计算量非常大,算法的时间复杂度线性增加,导致搜索速度慢。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种搜索方法和装置,以至少解决现有技术中无法快速、准确进行搜索的技术问题。根据本专利技术实施例的一个方面,提供了一种搜索方法,包括:获取用于表示第一区域的第一希尔伯特编码,其中,所述第一区域是第一终端所在的区域;判断是否获取到所述第一区域的地域信息;在未获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第一集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第二集合,其中,所述第一集合是预设范围的地域中第一类别的元素的集合,所述第一类别是待搜索的目标元素的类别;依次获取所述第一终端的地理位置与所述第二集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为所述目标元素;在获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第三集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第四集合,其中,所述第三集合是所述第一区域所处的地域中所述第一类别的元素的集合,所述预设范围的地域包括所述第一区域所处的地域;依次获取所述第一终端的地理位置与所述第四集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为所述目标元素。根据本专利技术实施例的另一方面,还提供了一种搜索装置,包括:第一获取单元,用于获取用于表示第一区域的第一希尔伯特编码,其中,所述第一区域是第一终端所在的区域;第一判断单元,用于判断是否获取到所述第一区域的地域信息;第一匹配单元,用于在未获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第一集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第二集合,其中,所述第一集合是预设范围的地域中第一类别的元素的集合,所述第一类别是待搜索的目标元素的类别;第二获取单元,用于依次获取所述第一终端的地理位置与所述第二集合中每个元素的地理位置之间的距离;第一确定单元,用于将最小的距离对应的元素作为所述目标元素;第二匹配单元,用于在获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第三集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第四集合,其中,所述第三集合是所述第一区域所处的地域中所述第一类别的元素的集合,所述预设范围的地域包括所述第一区域所处的地域;第三获取单元,用于依次获取所述第一终端的地理位置与所述第四集合中每个元素的地理位置之间的距离;第二确定单元,用于将最小的距离对应的元素作为所述目标元素。在本专利技术实施例中,先使用希尔伯特编码从大量的备选点中筛选出距离用户较近的少量备选点,再使用线性搜索方法计算用户与这些少量的备选点中每一个备选点的距离,筛选出距离最小的备选点,作为搜索结果(待搜索的目标元素)。通过将希尔伯特搜索方法与线性搜索方法相结合,只需要计算用户与少量的备选点之间的距离,避免了计算量随备选点的数量增加而线性增大的问题,时间复杂度为O(1),搜索速度快,搜索效率高,并且避免了希尔伯特算法从二维到一维降维之后信息的部分损失导致距离准确度降低的问题,达到了准确快速搜索的技术效果,进而解决了现有技术中无法快速、准确进行搜索的技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的网络构架的示意图;图2是根据本专利技术实施例的一种可选的搜索方法的流程图;图3是根据本专利技术实施例的希尔伯特空间填充曲线的示意图;图4是根据本专利技术实施例的另一种可选的搜索方法的流程图;图5是根据本专利技术实施例的一种可选的搜索装置的示意图;图6是根据本专利技术实施例的一种服务器的示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。技术术语解释:希尔伯特(Hilbert)空间索引算法:一种地理位置信息的编码算法,它采用一种自相似螺旋数据结构把地球表面空间划分成网格,采用Hilbert曲线进行空间填充。线性搜索算法:解决最近邻问题的最简单的算法,即分别计算目标点和其它备选点的距离。GeoHash算法:一种地理位置信息的编码算法,它采用一种自相似螺旋数据结构把地球表面空间划分成网格,一般采用Z序曲线即Peano曲线进行空间填充,也可以采用其他曲线。时间复杂度:定量描述算法的运行时间的函数,一般用大O符号表示。根据本专利技术实施例,提供了一种搜索方法的实施例。可选地,在本实施例中,上述搜索方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本专利技术实施例的搜索方法可以由服务器102来执行。本专利技术实施例提供的网络构架图如图1所示。如图1所示,终端104向服务器102上报终端104的经度信息和纬度信息,服务器102根据经度信息和纬度信息计算终端104所在区域的希尔伯特编码。服务器102存储了所有备选点及其对应的希尔伯特编码。服务器102根据用户所在区域的希尔伯特编码与终端104所在城市的所有备选点的希尔伯特编码的前若干位进行匹配,记录匹配成功的备选点的数量,如果匹配成功的备选点的数量较大,则增加进行匹配的希尔伯特编码的位数,继续进行匹配,直至匹配成功本文档来自技高网
...

【技术保护点】
1.一种搜索方法,其特征在于,包括:获取用于表示第一区域的第一希尔伯特编码,其中,所述第一区域是第一终端所在的区域;判断是否获取到所述第一区域的地域信息;在未获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第一集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第二集合,其中,所述第一集合是预设范围的地域中第一类别的元素的集合,所述第一类别是待搜索的目标元素的类别;依次获取所述第一终端的地理位置与所述第二集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为所述目标元素;在获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第三集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第四集合,其中,所述第三集合是所述第一区域所处的地域中所述第一类别的元素的集合,所述预设范围的地域包括所述第一区域所处的地域;依次获取所述第一终端的地理位置与所述第四集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为所述目标元素。

【技术特征摘要】
1.一种搜索方法,其特征在于,包括:获取用于表示第一区域的第一希尔伯特编码,其中,所述第一区域是第一终端所在的区域;判断是否获取到所述第一区域的地域信息;在未获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第一集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第二集合,其中,所述第一集合是预设范围的地域中第一类别的元素的集合,所述第一类别是待搜索的目标元素的类别;依次获取所述第一终端的地理位置与所述第二集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为所述目标元素;在获取到所述第一区域的地域信息的情况下,将所述第一希尔伯特编码依次与第三集合中每个元素的希尔伯特编码进行匹配,将匹配成功的元素构成的集合作为第四集合,其中,所述第三集合是所述第一区域所处的地域中所述第一类别的元素的集合,所述预设范围的地域包括所述第一区域所处的地域;依次获取所述第一终端的地理位置与所述第四集合中每个元素的地理位置之间的距离;将最小的距离对应的元素作为所述目标元素。2.根据权利要求1所述的方法,其特征在于,将所述第一希尔伯特编码依次与第一集合中每个元素的希尔伯特编码进行匹配包括:将1赋值给变量i,所述变量i为将两个希尔伯特编码进行匹配的前缀的位数;重复执行以下步骤,直至匹配成功的元素的数量小于等于第一预设数量,其中,所述第一预设数量小于所述第一集合中元素的数量:依次将所述第一集合中每一个元素的希尔伯特编码的前i位与所述第一希尔伯特编码的前i位进行匹配,得到所述第一集合中匹配成功的元素的数量;判断匹配成功的元素的数量是否小于等于所述第一预设数量;如果判断结果为否,将i+1的值赋给i。3.根据权利要求1所述的方法,其特征在于,将所述第一希尔伯特编码依次与第三集合中每个元素的希尔伯特编码进行匹配包括:将1赋值给变量i,所述变量i为将两个希尔伯特编码进行匹配的前缀的位数;重复执行以下步骤,直至匹配成功的元素的数量小于等于第一预设数量,其中,所述第一预设数量小于所述第一集合中元素的数量:依次将所述第三集合中每一个元素的希尔伯特编码的前i位与所述第一希尔伯特编码的前i位进行匹配,得到所述第三集合中匹配成功的元素的数量;判断匹配成功的元素的数量是否小于等于所述第一预设数量;如果判断结果为否,将i+1的值赋给i。4.根据权利要求2所述的方法,其特征在于,按照以下方法依次将所述第一集合中每一个元素的希尔伯特编码的前i位与所述第一希尔伯特编码的前i位进行匹配:将第一元素的希尔伯特编码的前i位字符与所述第一希尔伯特编码的前i位字符一一进行比较,其中,所述第一元素是所述第一集合中的任意一个元素;如果所述第一元素的希尔伯特编码的前i位字符与所述第一希尔伯特编码的前i位字符相同,确定所述第一元素与所述第一区域匹配成功;如果所述第一元素的希尔伯特编码的前i位字符与所述第一希尔伯特编码的前i位字符不相同,确定所述第一元素与所述第一区域匹配失败。5.根据权利要求1所述的方法,其特征在于,在将最小的距离对应的元素作为所述目标元素之后,所述方法还包括:将所述第一希尔伯特编码与所述目标元素进行关联,得到关联关系;存储所述关联关系,其中,所述关联关系用于提供给所述第一区域内的多个终端,以便所述多个终端根据所述关联关系确定所述目标元素。6.根据权利要求5所述的方法,其特征在于,在将所述第一希尔伯特编码依次与第一集合中每个元素的希尔伯特编码进行匹配之前,或者,在将所述第一希尔伯特编码依次与第三集合中每个元素的希尔伯特编码进行匹配之前,所述方法还包括:判断是否存储有所述关联关系;如果存储有所述关联关系,根据所述关联关系确定所述目标元素;如果未存储所述关联关系,则确定将所述第一希尔伯特编码依次与所述第一集合中每个元素的希尔伯特编码进行匹配。7.根据权利要求1所述的方法,其特征在于,获取用于表示第一区域的第一希尔伯特编码,包括:获取所述第一终端所在地理位置的经度信息和纬度信息;根据所述经度信息和所述纬度信息确定所述第一区域;计算所述第一区域的希尔伯特编码,得到所述第一希尔伯特编码。8.一种搜索装置,其特征在于,包括:第一获取单元,用于获取用于表示第一区域的第一希尔伯特编码,其中,所述...

【专利技术属性】
技术研发人员:管蓉
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1