CN105224609B - 一种索引查询方法及装置 - Google Patents
一种索引查询方法及装置 Download PDFInfo
- Publication number
- CN105224609B CN105224609B CN201510564564.2A CN201510564564A CN105224609B CN 105224609 B CN105224609 B CN 105224609B CN 201510564564 A CN201510564564 A CN 201510564564A CN 105224609 B CN105224609 B CN 105224609B
- Authority
- CN
- China
- Prior art keywords
- data
- request
- user
- information
- inquiry request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 238000004321 preservation Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种索引查询方法及装置,其中,索引查询方法包括:接收用户的查询请求,查询请求包括用户的用户信息和请求数据的请求数据信息,用户信息包括用户的地址属性信息和用户属性信息,请求数据信息包括数据属性信息;根据地址属性信息确定用户对应的区域索引表;根据用户属性信息和数据属性信息查询区域索引表对应的区域节点列表,并确定查询请求对应的二级索引节点,以及将查询请求路由至二级索引节点;根据查询请求获取请求数据的活跃度;根据活跃度和三级索引节点列表将查询请求路由至三级索引节点的数据库进行查询。本发明实施例的索引查询方法及装置,能够实现在复杂组合查询时,快速地获取请求数据的目的,从而提高查询效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种索引查询方法及装置。
背景技术
随着互联网的快速发展,信息量的不断增加,每天产生的数据以TB(太字节,TeraByte)级的规模增长。为支持容量的高速拓展,数据将以多区域分布式存储。随着数据的不断增长,单一的查询索引或缓存已不能满足快速变化的用户请求,而需要针对复杂的业务提供优化的组合索引技术,以提高数据查询性能。
目前,查询海量数据时,可对活跃数据和非活跃数据分别建立索引,每个或每部分服务器分别保存活跃数据对应的活跃数据索引和非活跃数据对应的非活跃数据索引。
但是,对于活跃度不高的平台或工具,大部分数据可能为非活跃数据,造成两种索引规模相差较大,性能也相差较大。对于同一用户来说,可能需要查询不同类型或活跃度的数据,此时则需要跨越不同的服务器进行查询,响应时间长,查询时间较长。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种索引查询方法,该方法能够解决在查询时如何快速地获取请求数据,提高查询效率的问题。
本发明的第二个目的在于提出一种索引查询装置。
本发明的第三个目的在于提出一种移动终端。
本发明的第四个目的在于提出一种存储介质。
本发明的第五个目的在于提出一种应用程序。
为实现上述目的,本发明第一方面实施例提出了一种索引查询方法,包括以下步骤:接收用户的查询请求,所述查询请求包括所述用户的用户信息和请求数据的请求数据信息,所述用户信息包括所述用户的地址属性信息和所述用户属性信息,所述请求数据信息包括数据属性信息;根据所述地址属性信息确定所述用户对应的区域索引表;根据所述用户属性信息和所述数据属性信息查询所述区域索引表对应的区域节点列表,并确定所述查询请求对应的二级索引节点,以及将所述查询请求路由至所述二级索引节点,其中,所述二级索引节点包括三级索引节点列表;根据所述查询请求获取所述请求数据的活跃度;根据所述活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询。
可选的,当所述用户为新注册用户时,将所述新注册用户的地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他所述区域索引表中。
可选的,所述三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表,所述根据活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询,包括:判断所述活跃度是否大于预设阈值;如果大于所述预设阈值,则将所述查询请求路由至Redis缓存索引表进行查询;如果小于等于所述预设阈值,则将所述查询请求路由至Mysql索引表或Mongodb索引表进行查询。
可选的,将所述查询请求路由至Redis缓存索引表进行查询,包括:获取所述查询请求中的所述请求数据的数据类型;对所述用户的用户属性信息和所述请求数据的数据类型进行哈希验证,并生成所述请求数据对应的索引值;判断所述索引值是否存在于所述Redis缓存索引表中;若存在,则查询所述Redis缓存索引表,并获取所述请求数据的位置信息。
可选的,所述将所述查询请求路由至Mysql索引表或Mongodb索引表进行查询,包括:获取所述查询请求中的所述请求数据的数据结构类型;当所述请求数据的数据结构类型为关系型数据时,查询所述Mongodb索引表,并获取所述请求数据的位置信息;当所述请求数据的数据结构类型为文档型数据时,查询所述Mysql索引表,并获取所述请求数据的位置信息。
可选的,索引查询方法还包括:获取所述请求数据的描述信息;根据所述描述信息判断所述请求数据是否为元数据;当所述请求数据为元数据时,根据所述位置信息下载所述请求数据;或者根据所述描述信息判断所述请求数据是否包含大数据,当所述请求数据包含大数据时,根据所述位置信息生成下载链接,并将所述下载链接提供至所述用户。
为实现上述目的,本发明第二方面实施例提出了一种索引查询装置,包括:接收模块,用于接收用户的查询请求,所述查询请求包括所述用户的用户信息和请求数据的请求数据信息,所述用户信息包括所述用户的地址属性信息和所述用户属性信息,所述请求数据信息包括数据属性信息;确定模块,用于根据所述地址属性信息确定所述用户对应的区域索引表;路由模块,用于根据所述用户属性信息和所述数据属性信息查询所述区域索引表对应的区域节点列表,并确定所述查询请求对应的二级索引节点,以及将所述查询请求路由至所述二级索引节点,其中,所述二级索引节点包括三级索引节点列表;获取模块,用于根据所述查询请求获取所述请求数据的活跃度;查询模块,用于根据所述活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询。
可选的,所述装置还包括:保存模块,用于当所述用户为新注册用户时,将所述新注册用户的地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他所述区域索引表中。
可选的,所述三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表,所述查询模块,用于:判断所述活跃度是否大于预设阈值,如果大于所述预设阈值,则将所述查询请求路由至Redis缓存索引表进行查询,如果小于等于所述预设阈值,则将所述查询请求路由至Mysql索引表或Mongodb索引表进行查询。
可选的,所述查询模块用于:获取所述查询请求中的所述请求数据的数据类型,对所述用户的用户属性信息和所述请求数据的数据类型进行哈希验证,并生成所述请求数据对应的索引值,判断所述索引值是否存在于所述Redis缓存索引表中,若存在,则查询所述Redis缓存索引表,并获取所述请求数据的位置信息。
可选的,所述查询模块用于:获取所述查询请求中的所述请求数据的数据结构类型,当所述请求数据的数据结构类型为关系型数据时,查询所述Mongodb索引表,并获取所述请求数据的位置信息,当所述请求数据的数据结构类型为文档型数据时,查询所述Mysql索引表,并获取所述请求数据的位置信息。
可选的,所述装置还包括:下载模块,用于获取所述请求数据的描述信息,并根据所述描述信息判断所述请求数据是否为元数据,当所述请求数据为元数据时,根据所述位置信息下载所述请求数据;或者根据所述描述信息判断所述请求数据是否包含大数据,当所述请求数据包含大数据时,根据所述位置信息生成下载链接,并将所述下载链接提供至所述用户。
为实现上述目的,本发明第三方面实施例提出了一种移动终端,该移动终端包括处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:
接收用户的查询请求,所述查询请求包括所述用户的用户信息和请求数据的请求数据信息,所述用户信息包括所述用户的地址属性信息和所述用户属性信息,所述请求数据信息包括数据属性信息;根据所述地址属性信息确定所述用户对应的区域索引表;根据所述用户属性信息和所述数据属性信息查询所述区域索引表对应的区域节点列表,并确定所述查询请求对应的二级索引节点,以及将所述查询请求路由至所述二级索引节点,其中,所述二级索引节点包括三级索引节点列表;根据所述查询请求获取所述请求数据的活跃度;根据所述活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询。
为实现上述目的,本发明第四方面实施例提出了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明所述的一种索引查询方法。
为实现上述目的,本发明第五方面实施例提出了一种应用程序,其中,所述应用程序用于在运行时执行本发明所述的一种索引查询方法。
在本发明中,通过获取用户的查询请求中的地址属性信息,并根据地址属性信息确定用户对应的区域索引表,再根据用户属性信息和数据属性信息将查询请求路由至二级索引节点,然后根据请求数据的活跃度将查询请求路由至三级索引节点,选择三级索引节点中保存的数据库进行查询,实现了在复杂组合查询时,能够快速地获取请求数据,从而提高了查询效率。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是根据本发明一个实施例的索引查询方法的流程图。
图2是根据本发明一个实施例的区域索引表同步效果示意图。
图3是根据本发明一个实施例的索引查询装置的结构示意图一。
图4是根据本发明一个实施例的索引查询装置的结构示意图二。
图5是根据本发明一个实施例的索引查询装置的结构示意图三。
图6是根据本发明一个实施例的移动终端的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的索引查询方法及装置。
图1是根据本发明一个实施例的索引查询方法的流程图,如图1所示,该方法包括:
S101,接收用户的查询请求。
其中,查询请求可包括用户的用户信息和请求数据的请求数据信息,用户信息可包括用户的地址属性信息和用户属性信息,请求数据信息可包括数据属性信息。用户的地址属性信息可以为IP/MCC。IP即Internet Protocol,网络之间互连的协议。MCC为移动国家码。
S102,根据地址属性信息确定用户对应的区域索引表。
其中,可根据地理位置信息划分出多个区域,每个区域中的接入节点均保存有对应的区域索引表,区域索引表保存有用户的地址属性信息。例如:用户的IP地址为192.168.1.1,MCC为460,则通过查询区域索引表可确定用户对应的区域索引表为中国北京地区的区域索引表。
当用户为新注册用户时,可将新注册用户的地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他区域索引表中。举例来说,如图2所示,假设有新注册用户User4,可通过路由就近原则将该用户的地址属性信息保存至区域2接入节点的区域索引表中,然后同步至区域1和区域3接入节点的区域索引表中。
S103,根据用户属性信息和数据属性信息查询区域索引表对应的区域节点列表,并确定查询请求对应的二级索引节点,以及将查询请求路由至二级索引节点。
其中,数据属性信息可包括渠道来源信息、产品编号、产品版本号等。
举例来说,QQ的编号为1,微信的编号为2,即使用户使用相同的账号登录QQ和微信,QQ的相关数据和微信的相关数据是存储在不同的节点中的。因此,可根据查询请求中包含的渠道来源信息、产品编号来确定查询请求对应的二级索引节点。
再举例来说,同一产品的数据可包括版本1和版本2,由于后台数据升级或迁移导致版本1的数据和版本2的数据存储在不同的节点中。因此,可根据查询请求中包含的产品版本号来确定查询请求对应的二级索引节点。
S104,根据查询请求获取请求数据的活跃度。
其中,活跃度为近期一定时间内,请求数据被查询的次数,若被查询的次数多,则活跃度高,若被查询的次数少,则活跃度低。
S105,根据活跃度和三级索引节点列表将查询请求路由至三级索引节点的数据库进行查询。
其中,二级索引节点包括三级索引节点列表。三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表。
具体地,可先判断活跃度是否大于预设阈值。如果大于预设阈值,则可将查询请求路由至Redis缓存索引表进行查询;如果小于等于预设阈值,则将查询请求路由至Mysql索引表或Mongodb索引表进行查询。
更具体地,当活跃度大于预设阈值时,可获取查询请求中的请求数据的数据类型,然后对用户的用户属性信息和请求数据的数据类型进行哈希验证,并生成请求数据对应的索引值,以及判断索引值是否存在于Redis缓存索引表中。如果该索引值存在于Redis缓存索引表中,则查询Redis缓存索引表,并获取请求数据的位置信息。其中,用户属性信息可包括用户名。例如:通过公式KEY=(hash(md5(username+type))),获取索引值KEY。其中,username为用户名,type为数据类型,如视频文件等。然后判断索引值KEY是否存在于Redis缓存索引表中。若存在,则可查询Redis缓存索引表,并获取请求数据的位置信息。
当活跃度小于等于预设阈值时,可将查询请求路由至Mysql索引表或Mongodb索引表进行查询。具体地,可获取请求数据的数据结构类型。其中,数据结构类型可包括关系型数据和文档型数据。关系型数据为可预先定义字段的数据,例如通讯记录,可预先定义拨打用户、接听用户、通话时长等。文档型数据为无法预先定义字段的数据,例如博客,无法预先定义博客的发布时间、字数等。当请求数据的数据结构类型为关系型数据时,可查询Mongodb索引表,并获取请求数据的位置信息;当请求数据的数据结构类型为文档型数据时,可查询Mysql索引表,并获取请求数据的位置信息。
在获取请求数据的位置信息时,还可获取请求数据的描述信息。其中,描述信息为对请求数据进行具体描述的信息,例如上传时间、数据大小等。可根据描述信息判断请求数据是否为元数据。其中,元数据为可直接将描述信息及数据内容封装返回给用户的内容,例如聊天记录等。当请求数据为元数据时,可根据位置信息下载请求数据。
另外,也可以根据描述信息判断请求数据是否包含大数据。其中,大数据为数据大小超过预设阈值的数据。当请求数据包含大数据时,可根据位置信息生成下载链接,并将下载链接提供至用户。
本发明实施例的索引查询方法,通过获取用户的查询请求中的地址属性信息,并根据地址属性信息确定用户对应的区域索引表,再根据用户属性信息和数据属性信息将查询请求路由至二级索引节点,然后根据请求数据的活跃度将查询请求路由至三级索引节点,选择三级索引节点中保存的数据库进行查询,实现了在复杂组合查询时,能够快速地获取请求数据,从而提高了查询效率。
为了实现上述实施例,本发明还提出一种索引查询装置。
图3是根据本发明一个实施例的索引查询装置的结构示意图一,如图3所示,该装置包括:接收模块110、确定模块120、路由模块130、获取模块140和查询模块150。
接收模块110用于接收用户的查询请求。
其中,查询请求可包括用户的用户信息和请求数据的请求数据信息,用户信息可包括用户的地址属性信息和用户属性信息,请求数据信息可包括数据属性信息。用户的地址属性信息可以为IP/MCC。IP即Internet Protocol,网络之间互连的协议。MCC为移动国家码。
确定模块120用于根据地址属性信息确定用户对应的区域索引表。
其中,可根据地理位置信息划分出多个区域,每个区域中的接入节点均保存有对应的区域索引表,区域索引表保存有用户的地址属性信息。例如:用户的IP地址为192.168.1.1,MCC为460,则通过查询区域索引表可确定用户对应的区域索引表为中国北京地区的区域索引表。
路由模块130用于根据用户属性信息和数据属性信息查询区域索引表对应的区域节点列表,并确定查询请求对应的二级索引节点,以及将查询请求路由至二级索引节点。
其中,数据属性信息可包括渠道来源信息、产品编号、产品版本号等。
举例来说,QQ的编号为1,微信的编号为2,即使用户使用相同的账号登录QQ和微信,QQ的相关数据和微信的相关数据是存储在不同的节点中的。因此,可根据查询请求中包含的渠道来源信息、产品编号来确定查询请求对应的二级索引节点。
再举例来说,同一产品的数据可包括版本1和版本2,由于后台数据升级或迁移导致版本1的数据和版本2的数据存储在不同的节点中。因此,可根据查询请求中包含的产品版本号来确定查询请求对应的二级索引节点。
获取模块140用于根据查询请求获取请求数据的活跃度。
其中,活跃度为近期一定时间内,请求数据被查询的次数,若被查询的次数多,则活跃度高,若被查询的次数少,则活跃度低。
查询模块150用于根据活跃度和三级索引节点列表将查询请求路由至三级索引节点的数据库进行查询。
其中,二级索引节点包括三级索引节点列表。三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表。
具体地,查询模块150可先判断活跃度是否大于预设阈值。如果大于预设阈值,则可将查询请求路由至Redis缓存索引表进行查询;如果小于等于预设阈值,则将查询请求路由至Mysql索引表或Mongodb索引表进行查询。
更具体地,当活跃度大于预设阈值时,可获取查询请求中的请求数据的数据类型,然后对用户的用户属性信息和请求数据的数据类型进行哈希验证,并生成请求数据对应的索引值,以及判断索引值是否存在于Redis缓存索引表中。如果该索引值存在于Redis缓存索引表中,则查询Redis缓存索引表,并获取请求数据的位置信息。其中,用户属性信息可包括用户名。例如:通过公式KEY=(hash(md5(username+type))),获取索引值KEY。其中,username为用户名,type为数据类型,如视频文件等。然后判断索引值KEY是否存在于Redis缓存索引表中。若存在,则可查询Redis缓存索引表,并获取请求数据的位置信息。
当活跃度小于等于预设阈值时,可将查询请求路由至Mysql索引表或Mongodb索引表进行查询。具体地,可获取请求数据的数据结构类型。其中,数据结构类型可包括关系型数据和文档型数据。关系型数据为可预先定义字段的数据,例如通讯记录,可预先定义拨打用户、接听用户、通话时长等。文档型数据为无法预先定义字段的数据,例如博客,无法预先定义博客的发布时间、字数等。当请求数据的数据结构类型为关系型数据时,可查询Mongodb索引表,并获取请求数据的位置信息;当请求数据的数据结构类型为文档型数据时,可查询Mysql索引表,并获取请求数据的位置信息。
另外,如图4所示,本发明实施例的索引查询装置还可包括保存模块160。
保存模块160用于当用户为新注册用户时,可将新注册用户的将地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他区域索引表中。
举例来说,如图2所示,假设有新注册用户User4,可通过路由就近原则将该用户的地址属性信息保存至区域2接入节点的区域索引表中,然后同步至区域1和区域3接入节点的区域索引表中。
此外,如图5所示,本发明实施例的索引查询装置还可包括下载模块170。
下载模块170用于获取请求数据的描述信息。其中,描述信息为对请求数据进行具体描述的信息,例如上传时间、数据大小等。然后下载模块170可根据描述信息判断请求数据是否为元数据。其中,元数据为可直接将描述信息及数据内容封装返回给用户的内容,例如聊天记录等。当请求数据为元数据时,下载模块170可根据位置信息下载请求数据。
另外,下载模块170也可以根据描述信息判断请求数据是否包含大数据。其中,大数据为数据大小超过预设阈值的数据。当请求数据包含大数据时,下载模块170可根据位置信息生成下载链接,并将下载链接提供至用户。
本发明实施例的索引查询装置,通过获取用户的查询请求中的地址属性信息,并根据地址属性信息确定用户对应的区域索引表,再根据用户属性信息和数据属性信息将查询请求路由至二级索引节点,然后根据请求数据的活跃度将查询请求路由至三级索引节点,选择三级索引节点中保存的数据库进行查询,实现了在复杂组合查询时,能够快速地获取请求数据,从而提高了查询效率。
为了实现上述实施例,本发明还提出一种移动终端。
图6是根据本发明一个实施例的移动终端的结构示意图。
如图6所示,该移动终端包括处理器61、存储器62、通信接口63和总线64,其中:处理器61、存储器62和通信接口63通过总线64连接并完成相互间的通信;存储器62存储可执行程序代码;处理器61通过读取存储器62中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
S101’,接收用户的查询请求。
其中,查询请求可包括用户的用户信息和请求数据的请求数据信息,用户信息可包括用户的地址属性信息和用户属性信息,请求数据信息可包括数据属性信息。用户的地址属性信息可以为IP/MCC。IP即Internet Protocol,网络之间互连的协议。MCC为移动国家码。
S102’,根据地址属性信息确定用户对应的区域索引表。
其中,可根据地理位置信息划分出多个区域,每个区域中的接入节点均保存有对应的区域索引表,区域索引表保存有用户的地址属性信息。例如:用户的IP地址为192.168.1.1,MCC为460,则通过查询区域索引表可确定用户对应的区域索引表为中国北京地区的区域索引表。
当用户为新注册用户时,可将新注册用户的地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他区域索引表中。举例来说,如图2所示,假设有新注册用户User4,可通过路由就近原则将该用户的地址属性信息保存至区域2接入节点的区域索引表中,然后同步至区域1和区域3接入节点的区域索引表中。
S103’,根据用户属性信息和数据属性信息查询区域索引表对应的区域节点列表,并确定查询请求对应的二级索引节点,以及将查询请求路由至二级索引节点。
其中,数据属性信息可包括渠道来源信息、产品编号、产品版本号等。
举例来说,QQ的编号为1,微信的编号为2,即使用户使用相同的账号登录QQ和微信,QQ的相关数据和微信的相关数据是存储在不同的节点中的。因此,可根据查询请求中包含的渠道来源信息、产品编号来确定查询请求对应的二级索引节点。
再举例来说,同一产品的数据可包括版本1和版本2,由于后台数据升级或迁移导致版本1的数据和版本2的数据存储在不同的节点中。因此,可根据查询请求中包含的产品版本号来确定查询请求对应的二级索引节点。
S104’,根据查询请求获取请求数据的活跃度。
其中,活跃度为近期一定时间内,请求数据被查询的次数,若被查询的次数多,则活跃度高,若被查询的次数少,则活跃度低。
S105’,根据活跃度和三级索引节点列表将查询请求路由至三级索引节点的数据库进行查询。
其中,二级索引节点包括三级索引节点列表。三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表。
具体地,可先判断活跃度是否大于预设阈值。如果大于预设阈值,则可将查询请求路由至Redis缓存索引表进行查询;如果小于等于预设阈值,则将查询请求路由至Mysql索引表或Mongodb索引表进行查询。
更具体地,当活跃度大于预设阈值时,可获取查询请求中的请求数据的数据类型,然后对用户的用户属性信息和请求数据的数据类型进行哈希验证,并生成请求数据对应的索引值,以及判断索引值是否存在于Redis缓存索引表中。如果该索引值存在于Redis缓存索引表中,则查询Redis缓存索引表,并获取请求数据的位置信息。其中,用户属性信息可包括用户名。例如:通过公式KEY=(hash(md5(username+type))),获取索引值KEY。其中,username为用户名,type为数据类型,如视频文件等。然后判断索引值KEY是否存在于Redis缓存索引表中。若存在,则可查询Redis缓存索引表,并获取请求数据的位置信息。
当活跃度小于等于预设阈值时,可将查询请求路由至Mysql索引表或Mongodb索引表进行查询。具体地,可获取请求数据的数据结构类型。其中,数据结构类型可包括关系型数据和文档型数据。关系型数据为可预先定义字段的数据,例如通讯记录,可预先定义拨打用户、接听用户、通话时长等。文档型数据为无法预先定义字段的数据,例如博客,无法预先定义博客的发布时间、字数等。当请求数据的数据结构类型为关系型数据时,可查询Mongodb索引表,并获取请求数据的位置信息;当请求数据的数据结构类型为文档型数据时,可查询Mysql索引表,并获取请求数据的位置信息。
在获取请求数据的位置信息时,还可获取请求数据的描述信息。其中,描述信息为对请求数据进行具体描述的信息,例如上传时间、数据大小等。可根据描述信息判断请求数据是否为元数据。其中,元数据为可直接将描述信息及数据内容封装返回给用户的内容,例如聊天记录等。当请求数据为元数据时,可根据位置信息下载请求数据。
另外,也可以根据描述信息判断请求数据是否包含大数据。其中,大数据为数据大小超过预设阈值的数据。当请求数据包含大数据时,可根据位置信息生成下载链接,并将下载链接提供至用户。
本发明实施例的移动终端,通过获取用户的查询请求中的地址属性信息,并根据地址属性信息确定用户对应的区域索引表,再根据用户属性信息和数据属性信息将查询请求路由至二级索引节点,然后根据请求数据的活跃度将查询请求路由至三级索引节点,选择三级索引节点中保存的数据库进行查询,实现了在复杂组合查询时,能够快速地获取请求数据,从而提高了查询效率。
为实现上述目的,本发明还提出一种存储介质,其中,存储介质用于存储应用程序,应用程序用于在运行时执行本发明的一种索引查询方法。
为实现上述目的,本发明还提出一种应用程序,其中,应用程序用于在运行时执行本发明的一种索引查询方法。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种索引查询方法,其特征在于,包括以下步骤:
接收用户的查询请求,所述查询请求包括所述用户的用户信息和请求数据的请求数据信息,所述用户信息包括所述用户的地址属性信息和所述用户属性信息,所述请求数据信息包括数据属性信息;
根据所述地址属性信息确定所述用户对应的区域索引表;
根据所述用户属性信息和所述数据属性信息查询所述区域索引表对应的区域节点列表,并确定所述查询请求对应的二级索引节点,以及将所述查询请求路由至所述二级索引节点,其中,所述二级索引节点包括三级索引节点列表;
根据所述查询请求获取所述请求数据的活跃度;
根据所述活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述用户为新注册用户时,将所述新注册用户的地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他所述区域索引表中。
3.如权利要求1或2所述的方法,其特征在于,所述三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表,所述根据活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询,包括:
判断所述活跃度是否大于预设阈值;
如果大于所述预设阈值,则将所述查询请求路由至Redis缓存索引表进行查询;
如果小于等于所述预设阈值,则将所述查询请求路由至Mysql索引表或Mongodb索引表进行查询。
4.如权利要求3所述的方法,其特征在于,将所述查询请求路由至Redis缓存索引表进行查询,包括:
获取所述查询请求中的所述请求数据的数据类型;
对所述用户的用户属性信息和所述请求数据的数据类型进行哈希验证,并生成所述请求数据对应的索引值;
判断所述索引值是否存在于所述Redis缓存索引表中;
若存在,则查询所述Redis缓存索引表,并获取所述请求数据的位置信息。
5.如权利要求3所述的方法,其特征在于,所述将所述查询请求路由至Mysql索引表或Mongodb索引表进行查询,包括:
获取所述查询请求中的所述请求数据的数据结构类型;
当所述请求数据的数据结构类型为关系型数据时,查询所述Mongodb索引表,并获取所述请求数据的位置信息;
当所述请求数据的数据结构类型为文档型数据时,查询所述Mysql索引表,并获取所述请求数据的位置信息。
6.如权利要求4或5所述的方法,其特征在于,还包括:
获取所述请求数据的描述信息;
根据所述描述信息判断所述请求数据是否为元数据;
当所述请求数据为元数据时,根据所述位置信息下载所述请求数据;或者
根据所述描述信息判断所述请求数据是否包含大数据,当所述请求数据包含大数据时,根据所述位置信息生成下载链接,并将所述下载链接提供至所述用户。
7.一种索引查询装置,其特征在于,包括以下步骤:
接收模块,用于接收用户的查询请求,所述查询请求包括所述用户的用户信息和请求数据的请求数据信息,所述用户信息包括所述用户的地址属性信息和所述用户属性信息,所述请求数据信息包括数据属性信息;
确定模块,用于根据所述地址属性信息确定所述用户对应的区域索引表;
路由模块,用于根据所述用户属性信息和所述数据属性信息查询所述区域索引表对应的区域节点列表,并确定所述查询请求对应的二级索引节点,以及将所述查询请求路由至所述二级索引节点,其中,所述二级索引节点包括三级索引节点列表;
获取模块,用于根据所述查询请求获取所述请求数据的活跃度;
查询模块,用于根据所述活跃度和所述三级索引节点列表将所述查询请求路由至所述三级索引节点的数据库进行查询。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
保存模块,用于当所述用户为新注册用户时,将所述新注册用户的地址属性信息保存至与其距离最近的区域索引表中,以及同步至其他所述区域索引表中。
9.如权利要求7或8所述的装置,其特征在于,所述三级索引节点的数据库包括Redis缓存索引表、Mysql索引表和Mongodb索引表,所述查询模块,用于:
判断所述活跃度是否大于预设阈值,如果大于所述预设阈值,则将所述查询请求路由至Redis缓存索引表进行查询,如果小于等于所述预设阈值,则将所述查询请求路由至Mysql索引表或Mongodb索引表进行查询。
10.如权利要求9所述的装置,其特征在于,所述查询模块,用于:
获取所述查询请求中的所述请求数据的数据类型,对所述用户的用户属性信息和所述请求数据的数据类型进行哈希验证,并生成所述请求数据对应的索引值,判断所述索引值是否存在于所述Redis缓存索引表中,若存在,则查询所述Redis缓存索引表,并获取所述请求数据的位置信息。
11.如权利要求9所述的装置,其特征在于,所述查询模块,用于:
获取所述查询请求中的所述请求数据的数据结构类型,当所述请求数据的数据结构类型为关系型数据时,查询所述Mongodb索引表,并获取所述请求数据的位置信息,当所述请求数据的数据结构类型为文档型数据时,查询所述Mysql索引表,并获取所述请求数据的位置信息。
12.如权利要求10或11所述的装置,其特征在于,所述装置还包括:
下载模块,用于获取所述请求数据的描述信息,并根据所述描述信息判断所述请求数据是否为元数据,当所述请求数据为元数据时,根据所述位置信息下载所述请求数据;或者
根据所述描述信息判断所述请求数据是否包含大数据,当所述请求数据包含大数据时,根据所述位置信息生成下载链接,并将所述下载链接提供至所述用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510564564.2A CN105224609B (zh) | 2015-09-07 | 2015-09-07 | 一种索引查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510564564.2A CN105224609B (zh) | 2015-09-07 | 2015-09-07 | 一种索引查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224609A CN105224609A (zh) | 2016-01-06 |
CN105224609B true CN105224609B (zh) | 2018-09-14 |
Family
ID=54993577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510564564.2A Expired - Fee Related CN105224609B (zh) | 2015-09-07 | 2015-09-07 | 一种索引查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224609B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912679A (zh) * | 2016-04-13 | 2016-08-31 | 广州华多网络科技有限公司 | 一种数据查询的方法和装置 |
CN108205557A (zh) * | 2016-12-19 | 2018-06-26 | 顺丰科技有限公司 | 检索终端、服务端以及信息通讯检索方法和系统 |
CN108255889A (zh) * | 2016-12-30 | 2018-07-06 | 深圳壹账通智能科技有限公司 | 多个征信机构的数据处理方法及装置 |
CN110321301B (zh) * | 2018-03-30 | 2023-09-22 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN108984615B (zh) * | 2018-06-12 | 2023-04-07 | 北京杰控科技有限公司 | 一种数据查询方法和系统、存储介质 |
CN109299106B (zh) * | 2018-10-31 | 2020-09-22 | 中国联合网络通信集团有限公司 | 数据查询方法和装置 |
CN111309471B (zh) * | 2018-12-11 | 2024-02-09 | 迈普通信技术股份有限公司 | 数据处理方法、装置及分布式系统 |
CN110046036A (zh) * | 2018-12-25 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种操作请求分配方法、装置及设备 |
CN109934564A (zh) * | 2019-03-20 | 2019-06-25 | 泰信利美信息科技(常州)有限公司 | 企业知识产权管理系统的统一管理系统 |
CN110457316A (zh) * | 2019-06-27 | 2019-11-15 | 四川工商学院 | 一种大规模数据集的Skyline查询方法及其系统 |
CN111291057A (zh) * | 2020-02-26 | 2020-06-16 | 上海云鱼智能科技有限公司 | Im工具的用户信息索引方法、装置、服务器及存储介质 |
CN112069175B (zh) * | 2020-08-25 | 2024-03-29 | 北京五八信息技术有限公司 | 数据查询的方法、装置及电子设备 |
CN115291773B (zh) * | 2022-08-09 | 2024-07-23 | 北京商银微芯科技有限公司 | 树形结构数据展示方法及装置 |
CN115827646B (zh) * | 2023-02-22 | 2023-05-02 | 北京仁科互动网络技术有限公司 | 索引配置方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN103186542A (zh) * | 2011-12-27 | 2013-07-03 | 腾讯科技(北京)有限公司 | 一种数据查询的方法及装置 |
CN103514214A (zh) * | 2012-06-28 | 2014-01-15 | 深圳中兴网信科技有限公司 | 数据查询方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352705B2 (en) * | 2008-01-15 | 2013-01-08 | Vmware, Inc. | Large-page optimization in virtual memory paging systems |
-
2015
- 2015-09-07 CN CN201510564564.2A patent/CN105224609B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN103186542A (zh) * | 2011-12-27 | 2013-07-03 | 腾讯科技(北京)有限公司 | 一种数据查询的方法及装置 |
CN103514214A (zh) * | 2012-06-28 | 2014-01-15 | 深圳中兴网信科技有限公司 | 数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105224609A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224609B (zh) | 一种索引查询方法及装置 | |
CN104378452B (zh) | 一种用于域名解析的方法、装置及系统 | |
US8930374B2 (en) | Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure | |
CN105138592A (zh) | 一种基于分布式架构的日志数据存储和检索方法 | |
CN102638584B (zh) | 数据分布缓存方法及系统 | |
CN104618506A (zh) | 一种众包的内容分发网络系统、方法与装置 | |
CN102164160B (zh) | 支持大并发量文件下载的方法、装置及系统 | |
US20200204652A1 (en) | Method, apparatus and system for processing data | |
CN103023768A (zh) | 边缘路由节点以及其从多源预取内容的方法 | |
CN104717314B (zh) | 一种ip管理方法及系统、客户端、服务器 | |
CN104303489A (zh) | 在网络中执行dns解析的方法、内容分发系统和用于在内容分发系统中进行部署的客户端终端 | |
CN103957282B (zh) | 一种域内终端用户域名解析加速系统及其方法 | |
CN105635196A (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
CN108234639A (zh) | 一种基于内容分发网络cdn的数据访问方法和装置 | |
CN105095313A (zh) | 一种数据访问方法和设备 | |
CN108920552A (zh) | 一种面向多源大数据流的分布式索引方法 | |
CN104811493A (zh) | 一种网络感知的虚拟机镜像存储系统及读写请求处理方法 | |
CN105843867A (zh) | 基于元数据模型的检索方法和基于元数据模型的检索装置 | |
CN104239509A (zh) | 多版本gis切片服务系统 | |
CN101673272A (zh) | 搜索信息的方法、系统、装置及垂直搜索引擎注册的方法 | |
CN103107944B (zh) | 一种内容定位方法和路由设备 | |
Von der Weth et al. | Multiterm keyword search in NoSQL systems | |
CN106484694B (zh) | 基于分布式数据库的全文搜索方法及系统 | |
CN109451089A (zh) | 一种访问方法、装置、计算机设备及计算机存储介质 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180914 |
|
CF01 | Termination of patent right due to non-payment of annual fee |