CN112463827A - 查询方法、装置、电子设备及存储介质 - Google Patents

查询方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112463827A
CN112463827A CN202011282795.1A CN202011282795A CN112463827A CN 112463827 A CN112463827 A CN 112463827A CN 202011282795 A CN202011282795 A CN 202011282795A CN 112463827 A CN112463827 A CN 112463827A
Authority
CN
China
Prior art keywords
target
data
query
field
primary key
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.)
Granted
Application number
CN202011282795.1A
Other languages
English (en)
Other versions
CN112463827B (zh
Inventor
金峙廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202011282795.1A priority Critical patent/CN112463827B/zh
Publication of CN112463827A publication Critical patent/CN112463827A/zh
Application granted granted Critical
Publication of CN112463827B publication Critical patent/CN112463827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例提供了一种查询方法、装置、电子设备及存储介质。所述方法包括:获取查询条件,其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询;根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键;根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。因此,本公开的方案,不需要进行批量数据迁移,从而可以在一定程度上缩短查询时间,并在一定程度上降低数据丢失的风险。

Description

查询方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种查询方法、装置、电子设备及存储介质。
背景技术
目前,系统的行为日志数据采集到之后都存放在ElasticSearch(即分布式搜索引擎)里。其中,在ElasticSearch中,都是以行为维度划分的存储索引。如果数据分析人员想要根据另一个索引的某些条件,去筛选当前索引的一些数据,则会非常的困难。目前的做法是在数据仓库工具(Hive)中先按照待关联索引的字段映射建立表结构,然后将Elasticsearch中的索引分别进行数据导入,导入后在Hive上写结构化查询语言(Structured Query Language,SQL),通过表连接实现关联查询,最终得出目标数据。
然而,每次进行数据筛选时都要从Elasticsearch同步数据到Hive中去,其中,数据同步时间都会比较久,且在同步数据的过程中,还有数据丢失的风险。
发明内容
为了解决背景技术中记载的技术问题,本公开实施例提供了一种查询方法、装置、电子设备及存储介质,本公开的技术方案如下:
根据本公开实施例的第一方面,提供了一种查询方法,所述方法包括:
获取查询条件,其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询;
根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键;
根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
可选的,所述获取查询条件,包括:
接收用户输入的查询关键词,其中,所述查询关键词包括用于表示字段名称的目标词语以及至少部分字段的取值;
获取所述分布式搜索引擎中与所述目标词语相匹配的字段名称,并将与所述目标词语相匹配的字段名称,以及所述至少部分字段的取值,作为所述查询条件。
可选的,所述查询条件包括:第i个所述目标索引中的至少一个第一字段的名称,以及所述第一字段的取值,i取1~N中的每一个整数,N表示所述目标索引的数量;
所述根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键,包括:
在i取1~N中的每一个整数时,获取第i个所述目标索引中,与所述查询条件中包括的第i个所述目标索引中的所述第一字段的取值相匹配的数据条目,以作为第i个所述目标索引的候选数据;
在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键。
可选的,所述查询条件还包括:第i个所述目标索引中的M个第二字段的名称以及候选索引的标识信息,其中,第1个所述目标索引中的第j个所述第二字段至第N个所述目标索引中的第j个所述第二字段所表示的对象相同,j为1~M中的整数,M大于或等于1,所述候选索引包括所述目标索引中所述目标数据包括的字段所处的索引;
所述在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键,包括:
在i取1~N中的每一个整数,j取1~M中的每一个整数时,遍历第i个所述目标索引的候选数据中的每一个数据条目,将每一个数据条目中的第i个所述目标索引中的第j个所述第二字段的取值与该数据条目的主键,组成一个键值对,并将得到的键值对存储于
Figure BDA0002781341150000021
标识的第一目标集合中;
在j取1~M中的每一个整数时,获取
Figure BDA0002781341150000031
标识的第一目标集合至
Figure BDA0002781341150000032
标识的第一目标集合中的键值对中的相同取值,以作为第j个目标取值;
在j取1~M中的每一个整数,k取1~L中的每一个整数时,获取第j个所述目标取值在第k个所述候选索引的候选数据中所处数据条目的主键,并存储于
Figure BDA0002781341150000033
标识的第二目标集合中,其中,L表示所述候选索引的数量;
在k取1~L中的每一个整数时,获取
Figure BDA0002781341150000034
标识的所述第二目标集合的交集,以作为第k个第三目标集合,并将所述第三目标集合中包括的主键确定为所述目标主键。
可选的,所述查询条件中还包括:第k个所述候选索引中的至少一个第三字段的名称;
所述根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据,包括:
在k取1~L中的每一个整数时,在第k个所述候选索引的候选数据中,获取第k个所述第三目标集合中的主键所标识的数据条目中,第k个所述候选索引中的所述第三字段的取值,以作为第k批待处理数据;
将第1批待处理数据至第L批待处理数据拼接为所述目标数据。
根据本公开实施例的第二方面,提供了一种查询装置,所述装置包括:
筛选条件解析模块,被配置为获取查询条件,其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询;
主键获取模块,被配置为根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键;
索引字段查询拼接模块,被配置为根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
可选的,所述筛选条件解析模块具体被配置为:
接收用户输入的查询关键词,其中,所述查询关键词包括用于表示字段名称的目标词语以及至少部分字段的取值;
获取所述分布式搜索引擎中与所述目标词语相匹配的字段名称,并将与所述目标词语相匹配的字段名称,以及所述至少部分字段的取值,作为所述查询条件。
可选的,所述查询条件包括:第i个所述目标索引中的至少一个第一字段的名称,以及所述第一字段的取值,i取1~N中的每一个整数,N表示所述目标索引的数量;所述主键获取模块包括:
查询字段子模块,被配置为在i取1~N中的每一个整数时,获取第i个所述目标索引中,与所述查询条件中包括的第i个所述目标索引中的所述第一字段的取值相匹配的数据条目,以作为第i个所述目标索引的候选数据;
主键映射子模块,被配置为在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键。
可选的,所述查询条件还包括:第i个所述目标索引中的M个第二字段的名称以及候选索引的标识信息,其中,第1个所述目标索引中的第j个所述第二字段至第N个所述目标索引中的第j个所述第二字段所表示的对象相同,j为1~M中的整数,M大于或等于1,所述候选索引包括所述目标索引中所述目标数据包括的字段所处的索引;所述主键映射子模块包括:
键值对构建单元,被配置为在i取1~N中的每一个整数,j取1~M中的每一个整数时,遍历第i个所述目标索引的候选数据中的每一个数据条目,将每一个数据条目中的第i个所述目标索引中的第j个所述第二字段的取值与该数据条目的主键,组成一个键值对,并将得到的键值对存储于
Figure BDA0002781341150000041
标识的第一目标集合中;
相同取值获取单元,被配置为在j取1~M中的每一个整数时,获取
Figure BDA0002781341150000042
标识的第一目标集合至
Figure BDA0002781341150000043
标识的第一目标集合中的键值对中的相同取值,以作为第j个目标取值;
主键获取单元,被配置为在j取1~M中的每一个整数,k取1~L中的每一个整数时,获取第j个所述目标取值在第k个所述候选索引的候选数据中所处数据条目的主键,并存储于
Figure BDA0002781341150000044
标识的第二目标集合中,其中,L表示所述候选索引的数量;
主键交集计算单元,被配置为在k取1~L中的每一个整数时,获取
Figure BDA0002781341150000045
标识的所述第二目标集合的交集,以作为第k个第三目标集合,并将所述第三目标集合中包括的主键确定为所述目标主键。
可选的,所述查询条件中还包括:第k个所述候选索引中的至少一个第三字段的名称;所述索引字段查询拼接模块具体被配置为:
在k取1~L中的每一个整数时,在第k个所述候选索引的候选数据中,获取第k个所述第三目标集合中的主键所标识的数据条目中,第k个所述候选索引中的所述第三字段的取值,以作为第k批待处理数据;
将第1批待处理数据至第L批待处理数据拼接为所述目标数据。
根据本公开实施例的第三方面,提供一种电子设备,该电子设备包括:
处理器;
用于存储该处理器可执行指令的存储器;
其中,该处理器被配置为执行所述指令,以实现本公开提供的查询方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备实现本公开提供的查询方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行时,使得电子设备能够执行如本公开提供的查询方法。
本公开实施例提供的技术方案,能够获取针对ElasticSearch中的至少两个目标索引进行关联查询的查询条件,从而根据查询条件获取所要查询的目标数据涉及的目标索引中的数据条目的主键,以作为目标主键,从而根据查询条件,从目标索引中主键为目标主键的数据条目中,提取目标数据。由此可见,本公开的实施例,能够根据查询条件获取所要查询的目标数据涉及的数据条目的主键,进而可以直接通过目标主键在ElasticSearch中查询目标数据。因此,本公开的实施例,不需要进行批量数据迁移,从而可以在一定程度上缩短查询时间,并在一定程度上降低数据丢失的风险。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1是根据一示例性实施例示出的一种查询方法的流程图;
图2是根据一示例性实施例示出的另一种查询方法的流程图;
图3是根据一示例性实施例示出的一种查询装置的框图;
图4是根据一示例性实施例示出的一种电子设备的框图;
图5是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了解决现有技术中在Elasticsearch的查询引擎里根据另一个索引的一些条件,来检索到当前索引的目标数据,需要进行批量数据迁移,从而导致查询时间较长且存在数据丢失的风险的问题,本公开实施例提供了一种查询方法、装置、电子设备及存储介质。
图1是根据一示例性实施例示出的一种查询方法的流程图,如图1所示,方法可以包括以下步骤:
步骤101:获取查询条件。
所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询。即所述至少两个目标索引相关联,亦即所述至少两个目标索引中存在相关联的字段。其中,两个字段描述的对象相同,则这两个字段相关联,例如一个字段为购买产品的ID,另一个字段为浏览产品的ID,即这两个字段均是描述产品的ID,则这两个字段相关联。
由此可见,本公开的实施例,根据查询条件所要查询的目标数据位于Elasticsearch中的至少两个相关联的目标索引中,即本公开的实施例,可以基于至少两个相关联的目标索引进行查询。
在ElasticSearch中,都是以行为维度划分的存储索引。例如有AppA和AppB的两个客户端,用户访问名为AppA的客户端,埋点的软件开发工具包(SDK)会将这些用户的访问行为数据(包括但不限于用户名u_name、浏览的产品ID u_spid、省份u_prov、新老用户u_type、访问时间u_vtime等)采集,并且写入Elasticsearch的IndexA的索引中,方便数据分析人员进行数据检索;于此同时,AppB的客户端对某一些保险产品进行售卖,用户会产生购买行为,则AppB的埋点SDK会将这些用户的购买行为数据(包括但不限于用户名u_name、性别u_sex、购买产品ID u_proid,购买金额u_money,购买时间u_ptime等)采集,写入Elasticsearch的IndexB的索引中。
其中,之所以会存储进入Elasticsearch,是因为这些数据都是用户实时产生的,数据量也比较大,并且Elasticsearch由于其天然的倒排索引机制,使得数据分析人员可以分别对独立的索引中的各个字段进行快速查询。
由上述可知,对于上述AppA和AppB这两个客户端,在Elasticsearch中的indexA存储有用户访问AppA的行为数据,在Elasticsearch中的indexB中存储有用户访问AppB的行为数据。其中,用户访问AppA的行为数据包括的字段为:用户名(u_name)、浏览的产品ID(u_spid)、省份)(u_prov)、新老用户(u_type)、访问时间(u_vtime);用户访问AppB的行为数据包括的字段为:用户名(u_name)、性别(u_sex)、购买产品ID(u_proid),购买金额(u_money),购买时间u_ptime。由此可见,indexA和indexB中存在相关联的字段,即indexA.u_name与indexB.u_name相关联,indexA.u_spid与indexB.u_proid,indexA.u_vtime与indexB.u_ptime,因此,indexA与indexB为相关联的两个索引。因此,则本公开的实施例,可以基于indexA和indexB进行查询。
步骤102:根据所述查询条件,取所要查询的目标数据涉及的所述目标索引中的数据条目的主键,以作为目标主键。
由Elasticsearch本身的原理可知,Elasticsearch中的每条数据都有一个其自动生成的不会重复的主键(es_id),根据这个es_id,可以很快的查找到这一条数据。因此,本公开的实施例,可以首先根据查询条件确定出所要查询的目标数据包括的字段所处的数据条目的es_id,从而可以根据es_id快速查找到这些es_id所标识的数据条目,进而可以从查找到的这些es_id所标识的数据条目中提取所要查询的目标数据。
步骤103:根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
由上述可知,本公开实施例的查询方法,能够获取针对ElasticSearch中的至少两个目标索引进行查询的查询条件,从而根据查询条件获取所要查询的目标数据涉及的目标索引中的数据条目的主键,以作为目标主键,从而根据查询条件,从目标索引中主键为目标主键的数据条目中,提取目标数据。由此可见,本公开实施例的查询方法,能够根据查询条件获取所要查询的目标数据涉及的数据条目的主键,进而可以直接通过目标主键在ElasticSearch中查询目标数据。因此,本公开实施例的查询方法,不需要进行批量数据迁移,从而可以在一定程度上缩短查询时间,并在一定程度上降低数据丢失的风险。
根据本公开实施例的第二方面,提供了一种查询方法,如图2所示,该方法可以包括以下步骤:
步骤201:获取查询条件。
其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询。即所述至少两个目标索引相关联,亦即所述至少两个目标索引中存在相关联的字段。其中,两个字段描述的对象相同,则这两个字段相关联,例如一个字段为购买产品的ID,另一个字段为浏览产品的ID,即这两个字段均是描述产品的ID,则这两个字段相关联。
由此可见,本公开的实施例,根据查询条件所要查询的目标数据位于Elasticsearch中的至少两个相关联的目标索引中,即本公开的实施例,可以基于至少两个相关联的目标索引进行查询。
例如AppA和AppB的两个客户端,在Elasticsearch中的indexA存储有用户访问AppA的行为数据,在Elasticsearch中的indexB中存储有用户访问AppB的行为数据。其中,用户访问AppA的行为数据包括的字段为:用户名(u_name)、浏览的产品(ID u_spid)、省份(u_prov)、新老用户(u_type)、访问时间(u_vtime);用户访问AppB的行为数据包括的字段为:用户名(u_name)、性别(u_sex)、购买产品ID(u_proid),购买金额(u_money),购买时间(u_ptime)。由此可见,indexA和indexB中存在相关联的字段,即indexA.u_name与indexB.u_name相关联,indexA.u_spid与indexB.u_proid,indexA.u_vtime与indexB.u_ptime,因此,indexA与indexB为相关联的两个索引。因此,则本公开的实施例,可以基于indexA和indexB进行关联查询。
可选的,所述获取查询条件,包括:
接收用户输入的查询关键词,其中,所述查询关键词包括用于表示字段名称的目标词语以及至少部分字段的取值;
获取所述分布式搜索引擎中与所述目标词语相匹配的字段名称,并将与所述目标词语相匹配的字段名称,以及所述至少部分字段的取值,作为所述查询条件。
由此可知,本公开的实施例中,可以通过用户自己输入用于表示字段名称的目标词语以及至少部分字段的取值,从而可以自动将Elasticsearch中的字段与目标词语进行匹配(即将用户输入的目标词语映射至Elasticsearch中的字段),从而将匹配到的字段以及用户输入的字段的取值,一同作为查询条件。即本公开的实施例中,通过用户输入查询关键词,并通过映射字段的方式获取查询所依据的查询条件。
步骤202:在i取1~N中的每一个整数时,获取第i个所述目标索引中,与所述查询条件中包括的第i个所述目标索引中的所述第一字段的取值相匹配的数据条目,以作为第i个所述目标索引的候选数据。
其中,所述查询条件包括第i个所述目标索引中的至少一个第一字段的名称,以及所述第一字段的取值,i取1~N中的每一个整数,N表示所述目标索引的数量。即本公开的实施例中,查询条件中会包括每一个目标索引中的至少一个第一字段的名称,以及第一字段的取值。因此,可以根据查询条件中包括的每一个目标索引中的第一字段的取值,从每一个目标索引中筛选出部分数据,然后从筛选出的这部分数据中获取所要查询的目标数据包括的字段所处数据条目的主键,从而缩小数据查询范围,进而缩短数据查询时间。
另外,各个目标索引中的上述第一字段的数量可以不同,例如第一个目标索引中的第一字段的数量可以为一个,第二个目标索引中的第一字段的数量可以为两个。
例如目标索引包括上述indexA和indexB,且用户需要查询在2020-6-20日在AppA访问某个产品并且在AppB内产生购买行为的女性用户姓名、省份、产品ID,则查询条件中可以包括indexA.u_vtime以及indexA.u_vtime的取值(例如2020年6月20日),indexB.u_ptime以及indexB.u_ptime的取值(例如2020年6月20日),indexB.u_sex以及indexB.u_sex(例如取值为女性),从而可以根据indexA.u_vtime以及indexA.u_vtime的取值(即2020年6月20日),在indexA中初步筛选出访问时间是2020年6月20日的数据条目,以作为indexA的候选数据;并根据indexB.u_ptime以及indexB.u_ptime的取值(即2020年6月20日),indexB.u_sex以及indexB._u_sex(即取值为女性),在indexB中初步筛选出购买时间是2020年6月20日且为女性用户的数据条目,以作为indexB的候选数据。
此外需要说明的是,Elasticsearch本身的实时性高,因而Elasticsearch中数据量都很大,一般存储的是过去七天的数据,所以,在对其进行关联查询时,一般需要携带时间字段,框定需要关联的数据的起止时间。因此,上述第一字段往往需要包括时间字段。
步骤203:在i取1~N中的每一个整数,j取1~M中的每一个整数时,遍历第i个所述目标索引的候选数据中的每一个数据条目,将每一个数据条目中的第i个所述目标索引中的第j个所述第二字段的取值与该数据条目的主键,组成一个键值对,并将得到的键值对存储于
Figure BDA0002781341150000101
标识的第一目标集合中。
其中,所述查询条件还包括:第i个所述目标索引中的M个第二字段的名称以及候选索引的标识信息,其中,第1个所述目标索引中的第j个所述第二字段至第N个所述目标索引中的第j个所述第二字段所表示的对象相同,j为1~M中的整数,M大于或等于1,所述候选索引包括所述目标索引中所述目标数据包括的字段所处的索引。
即本公开的实施例中,查询条件中还包括每一个目标索引中的M个第二字段的名称以及所要查询的目标数据包括的字段所处的索引(即候选索引)的标识信息,其中,每一个目标索引中的第二字段的数量相同,例如均为M个,则这M个第二字段中,每一个目标索引中的第j个第二字段表示的对象相同,即每一个目标索引中的第j个第二字段相关联。
例如目标索引包括上述indexA和indexB,且用户需要查询在2020-6-20日在AppA访问某个产品并且在AppB内产生购买行为的女性用户的姓名、省份、产品ID,则查询条件中还可以包括indexA.u_name、indexA.u_spid,indexB.u_name,indexB.u_proid,其中,indexA.u_name与indexB.u_name相关联,indexA.u_spid与indexB.u_proid相关联,则可以进行如下处理:
第一方面,从indexA的候选数据中,获取indexA.u_name的取值与其所属数据条目的主键,组成一个键值对,并存储在
Figure BDA0002781341150000111
标识的第一目标集合中;获取indexA.u_spid的取值与其所属数据条目的主键,组成一个键值对,并存储在
Figure BDA0002781341150000112
标识的第一目标集合中。
第二方面,从indexB的候选数据中,获取indexB.u_name的取值与其所属数据条目的主键,组成一个键值对,并存储在
Figure BDA0002781341150000113
标识的第一目标集合中;获取indexB.u_proid的取值与其所属数据条目的主键,组成一个键值对,并存储在
Figure BDA0002781341150000114
标识的第一目标集合中。
步骤204:在j取1~M中的每一个整数时,获取
Figure BDA0002781341150000115
标识的第一目标集合至
Figure BDA0002781341150000116
标识的第一目标集合中的键值对中的相同取值,以作为第j个目标取值。
其中,第1个所述目标索引中的第j个所述第二字段至第N个所述目标索引中的第j个所述第二字段所表示的对象相同,因此
Figure BDA0002781341150000117
标识的第一目标集合至
Figure BDA0002781341150000118
标识的第一目标集合中的键值对中的取值为同一对象的各个取值,则可以在j取1~M中的每一个整数时,获取
Figure BDA0002781341150000119
标识的第一目标集合至
Figure BDA00027813411500001110
标识的第一目标集合中的键值对中的相同取值。
例如上述
Figure BDA0002781341150000121
标识的第一目标集合以及
Figure BDA0002781341150000122
标识的第一目标集合中存储的是各个用户名,则可以获取
Figure BDA0002781341150000123
标识的第一目标集合以及
Figure BDA0002781341150000124
标识的第一目标集合中的相同用户名,以作为第一个目标取值;上述
Figure BDA0002781341150000125
标识的第一目标集合以及
Figure BDA0002781341150000126
标识的第一目标集合中存储的是各个产品ID,则可以获取
Figure BDA0002781341150000127
标识的第一目标集合以及
Figure BDA0002781341150000128
标识的第一目标集合中的相同产品ID,以作为第二个目标取值。
步骤205:在j取1~M中的每一个整数,k取1~L中的每一个整数时,获取第j个所述目标取值在第k个所述候选索引的候选数据中所处数据条目的主键,并存储于
Figure BDA0002781341150000129
标识的第二目标集合中。
其中,L表示所述候选索引的数量。
通过步骤204获取到第1个目标取值至第M个目标取值后,则可以针对每一个目标取值,获取其在候选索引中所处数据条目的主键。
例如目标索引包括上述indexA和indexB,且用户需要查询在2020-6-20日在AppA访问某个产品并且在AppB内产生购买行为的女性用户姓名、省份、产品ID,则所要查询的目标数据包括的字段为用户姓名、省份、产品ID,且这些字段处于indexA中。进一步的,若经过步骤203,得到
Figure BDA00027813411500001210
标识第一目标集合以及
Figure BDA00027813411500001211
标识的第一目标集合中的相同用户名包括用户U1和用户U2,则可以获取用户U1和用户U2在indexA的候选数据中所处数据条目的主键,并存储于
Figure BDA00027813411500001212
标识的第三目标集合中;若经过步骤203,得到
Figure BDA00027813411500001213
标识的第一目标集合以及
Figure BDA00027813411500001214
标识的第一目标集合中的相同产品ID包括用户ID1和ID2,则可以获取ID1和ID2在indexA的候选数据中所处数据条目的主键,并存储于
Figure BDA00027813411500001215
标识的第三目标集合中。
其中,用户U1和用户U2在indexA的候选数据中所处数据条目的主键即为用户U1和用户U2在
Figure BDA00027813411500001216
标识的第一目标集合中所处键值对中的主键,ID1和ID2在indexA的候选数据中所处数据条目的主键,即为ID1和ID2在
Figure BDA00027813411500001217
标识的第一目标集合中所处键值对中的主键。
步骤206:在k取1~L中的每一个整数时,获取
Figure BDA00027813411500001218
标识的所述第二目标集合的交集,以作为第k个第三目标集合,并将所述第三目标集合中包括的主键确定为所述目标主键。
例如即
Figure BDA0002781341150000131
标识的第三目标集合中存储的是在访问AppA且在AppB中购买过产品的用户在indexA中的数据条目的主键;
Figure BDA0002781341150000132
标识的第三目标集合中存储的是在访问AppA访问过且在AppB中购买过了的产品在indexA中的数据条目的主键。则
Figure BDA0002781341150000133
标识的第三目标集合的交集,为在AppA访问某个产品并且在AppB内产生购买行为的用户在indexA中的数据条目的主键。
步骤207:根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
由Elasticsearch本身的原理可知,Elasticsearch中的每条数据都有一个其自动生成的不会重复的主键(es_id),根据这个es_id,可以很快的查找到这一条数据。因此,本公开的实施例,可以首先根据查询条件确定出所要查询的目标数据包括的字段所处的数据条目的es_id,从而可以根据es_id快速查找到这些es_id所标识的数据条目,进而可以从查找到的这些es_id所标识的数据条目中提取所要查询的目标数据。
可选的,所述查询条件中还包括:第k个所述候选索引中的至少一个第三字段的名称;所述根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据,包括:
在k取1~L中的每一个整数时,在第k个所述候选索引的候选数据中,获取第k个所述第三目标集合中的主键所标识的数据条目中,第k个所述候选索引中的所述第三字段的取值,以作为第k批待处理数据;
将第1批待处理数据至第L批待处理数据拼接为所述目标数据。
其中,所要查询的目标数据包括的字段所处的索引(即候选索引),可能为所要查询的目标索引中的其中一个或多个,则前面步骤206中获取的目标主键可能处于一个或多个目标索引中。因而,在从目标主键所标识的数据条目中提取目标数据的过程中,需要分别从每一个候选索引的候选数据中提取部分数据,最后再将提取的数据拼接为所要查询的目标数据。
例如目标索引包括上述indexA和indexB,且用户需要查询在2020-6-20日在AppA访问某个产品并且在AppB内产生购买行为的女性用户姓名、省份、产品ID,则所要查询的目标数据包括的字段为用户姓名、省份、产品ID,且这些字段处于indexA中。则在获取到目标主键后,直接从indexA的候选数据中,获取目标主键所标识的数据条目中的“用户姓名、省份、产品ID”这些字段的数据即可。
另外,例如目标索引包括上述indexA和indexB,且用户需要查询在2020-6-20日在AppA访问某个产品并且在AppB内产生购买行为的女性用户姓名、省份、产品ID以及购买金额,则所要查询的目标数据包括的字段为用户姓名、省份、产品ID、购买金额,且“用户姓名、省份、产品ID”这些字段处于indexA中,“购买金额”这个字段处于indexB中。则在获取到目标主键后,需要从indexA的候选数据中,获取属于indexA中的目标主键所标识的数据条目,并从这些数据条目中提取“用户姓名、省份、产品ID”这些字段的数据,以作为第一数据;然后,从indexB的候选数据中,获取属于indexB中的目标主键所标识的数据条目,并从这些数据条目中提取“购买金额”这一字段的数据,以作为第二数据;最后,由于第一数据和第二数据所处数据条目中均存在“用户姓名”字段和“产品ID”字段,因此,在拼接第一数据和第二数据的过程中,可以根据“用户姓名”字段和“产品ID”字段,确定第二数据中的各个购买金额的取值分别与哪一个用户姓名和哪一个产品ID对应。
综上所述,本公开实施例提供的查询方法的具体实施方式举例如下:
例如AppA和AppB的两个客户端,在Elasticsearch中的indexA存储有用户访问AppA的行为数据,在Elasticsearch中的indexB中存储有用户访问AppB的行为数据。其中,用户访问AppA的行为数据包括的字段为:用户名(u_name)、浏览的产品ID(u_spid)、省份(u_prov)、新老用户(u_type)、访问时间(u_vtime);用户访问AppB的行为数据包括的字段为:用户名(u_name)、性别(u_sex)、购买产品ID(u_proid),购买金额(u_money),购买时间(u_ptime)。
其中,可以设置一交互窗口,并在该交互窗口中设置用户输入区域,例如该用户输入区域包括用于输入前述查询条件中包括的第一字段及其取值的第一区域、用于输入前述查询条件中包括的第二字段的区域、用于输入前述查询条件中包括的第三字段的区域。
另外,上述第一字段可以称为查询字段,第二字段可以称为连接字段,第三字段可以称为目标字段。则在用户需要查询在2020-6-20日在AppA访问某个产品并且在AppB内产生购买行为的女性用户姓名、省份、产品ID的情况下,根据用户在前述第一区域、第二区域和第三区域中输入的内容,获取到的查询条件如下:
目标字段(target_col):indexA.u_name、indexA.u_prov、indexA.u_spid;
连接字段(join_col):
indexA.u_name、indexB.u_name;
indexA.u_spid、indexB.u_proid;
查询字段(query_col):
indexA.u_vtime=2020-6-20;
indexB.u_ptime=2020-6-20,且IndexB.u_sex=女。
首先,在indexA中筛选出indexA.u_vtime=2020-6-20的数据条目,以作为indexA的候选数据,从在indexB中筛选出indexB.u_ptime=2020-6-20,且IndexB.u_sex=女的数据条目,以作为indexB的候选数据;
其次,遍历indexA的候选数据,提取每一个数据条目中u_name字段的取值及其所处的数据条目的主键,并存储于<u_name,es_id>集合中,集合命名为IndexA_MapName;同理,提取每一个数据条目中u_spid字段的取值及其所处的数据条目的主键,并存储于<u_spid,es_id>集合中,集合命名为IndexA_MapPID;
同理,可以遍历indexB的候选数据,提取每一个数据条目中u_name字段的取值及其所处的数据条目的主键,并存储于<u_name,es_id>集合中,集合命名为IndexB_MapName;提取每一个数据条目中u_proid字段的取值及其所处的数据条目的主键,并存储于<u_proid,es_id>集合中,集合命名为IndexB_MapPID;
再次,由于join_col中,indexA的u_name对应indexB的u_name,indexA的u_spid对应indexB的u_proid;所以,进行集合运算时,将IndexA_MapName和IndexB_MapName分为一组,IndexA_MapPID和IndexB_MapPID分为一组,即:计算IndexA_MapName和IndexB_MapName的交集,以得到indexA.u_name与indexB.u_name的交集,从而得到一组u_name;同理,计算IndexA_MapPID和IndexB_MapPID的交集,以得到u_spid与u_proid的交集,从而得到一组pid。
再次,由上述target_col可知,所要查询的目标数据包括的字段均处于indexA中,因此,前述得到的一组u_name,只需要提取出这些u_name在indexA中的主键即可,因此可以从前述IndexA_MapName取出其对应的es_id,生成第一集合,命名为IndexA_Name_ESID;同理,前述得到的一组pid,只需要提取出这些pid在indexA中的主键即可,因此可以从前述IndexA_MapPID取出其对应的es_id,生成第二集合,命名为IndexA_PID_ESID。
再次,由于IndexA_PID_ESID中记录了在AppA中浏览这个产品并在AppB购买了该产品的明细条目集合,IndexA_Name_ESID中记录了在访问过AppA并且也访问过AppB的用户条目集合,所以,将这两个集合计算交集,即可得到在AppA访问某个产品并且在AppB内产生购买行为的这些访问数据,即得到最终的结果集合IndexA_Result_ESID。
最后,遍历IndexA_Result_ESID中的所有es_id,从indexA中,按照前述target_col,取出对应的字段,拼接结果,进行去重后,即可得到所要查询的目标数据。
由上述可知,本公开实施例的查询方法,通过映射字段,依据条件选择,主键过滤的方式,直接可以在Elasticsearch的搜索引擎里,根据另一个索引的一些条件,来检索到当前索引的目标数据,减少批量数据迁移的操作。
根据本公开实施例的第三方面,提供了一种查询装置,如图3所示,该查询装置300包括:
筛选条件解析模块301,被配置为获取查询条件,其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询;
主键获取模块302,被配置为根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键;
索引字段查询拼接模块303,被配置为根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
可选的,所述筛选条件解析模块301具体被配置为:
接收用户输入的查询关键词,其中,所述查询关键词包括用于表示字段名称的目标词语以及至少部分字段的取值;
获取所述分布式搜索引擎中与所述目标词语相匹配的字段名称,并将与所述目标词语相匹配的字段名称,以及所述至少部分字段的取值,作为所述查询条件。
可选的,所述查询条件包括:第i个所述目标索引中的至少一个第一字段的名称,以及所述第一字段的取值,i取1~N中的每一个整数,N表示所述目标索引的数量;所述主键获取模块302包括:
查询字段子模块3021,被配置为在i取1~N中的每一个整数时,获取第i个所述目标索引中,与所述查询条件中包括的第i个所述目标索引中的所述第一字段的取值相匹配的数据条目,以作为第i个所述目标索引的候选数据;
主键映射子模块3022,被配置为在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键。
可选的,所述查询条件还包括:第i个所述目标索引中的M个第二字段的名称以及候选索引的标识信息,其中,第1个所述目标索引中的第j个所述第二字段至第N个所述目标索引中的第j个所述第二字段所表示的对象相同,j为1~M中的整数,M大于或等于1,所述候选索引包括所述目标索引中所述目标数据包括的字段所处的索引;所述主键映射子模块3022包括:
键值对构建单元30221,被配置为在i取1~N中的每一个整数,j取1~M中的每一个整数时,遍历第i个所述目标索引的候选数据中的每一个数据条目,将每一个数据条目中的第i个所述目标索引中的第j个所述第二字段的取值与该数据条目的主键,组成一个键值对,并将得到的键值对存储于
Figure BDA0002781341150000181
标识的第一目标集合中;
相同取值获取单元30222,被配置为在j取1~M中的每一个整数时,获取
Figure BDA0002781341150000182
标识的第一目标集合至
Figure BDA0002781341150000183
标识的第一目标集合中的键值对中的相同取值,以作为第j个目标取值;
主键获取单元30223,被配置为在j取1~M中的每一个整数,k取1~L中的每一个整数时,获取第j个所述目标取值在第k个所述候选索引的候选数据中所处数据条目的主键,并存储于
Figure BDA0002781341150000184
标识的第二目标集合中,其中,L表示所述候选索引的数量;
主键交集计算单元30224,被配置为在k取1~L中的每一个整数时,获取
Figure BDA0002781341150000185
标识的所述第二目标集合的交集,以作为第k个第三目标集合,并将所述第三目标集合中包括的主键确定为所述目标主键。
可选的,所述查询条件中还包括:第k个所述候选索引中的至少一个第三字段的名称;所述索引字段查询拼接模块303具体被配置为:
在k取1~L中的每一个整数时,在第k个所述候选索引的候选数据中,获取第k个所述第三目标集合中的主键所标识的数据条目中,第k个所述候选索引中的所述第三字段的取值,以作为第k批待处理数据;
将第1批待处理数据至第L批待处理数据拼接为所述目标数据。
由上述可知,本公开实施例的查询装置,能够获取针对ElasticSearch中的至少两个目标索引进行关联查询的查询条件,从而根据查询条件获取所要查询的目标数据涉及的目标索引中的数据条目的主键,以作为目标主键,从而根据查询条件,从目标索引中主键为目标主键的数据条目中,提取目标数据。由此可见,本公开实施例的查询装置,能够根据查询条件获取所要查询的目标数据涉及的数据条目的主键,进而可以直接通过目标主键在ElasticSearch中查询目标数据。因此,本公开实施例的查询装置,不需要进行批量数据迁移,从而可以在一定程度上缩短查询时间,并在一定程度上降低数据丢失的风险。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开实施例的第四方面,提供了一种电子设备。参照图4,该电子设备包括:
处理器410;
用于存储所述处理器可执行指令的存储器420;
其中,所述处理器被配置为执行所述指令,以实现上述所述的查询方法。
根据本公开实施例的第五方面,还提供了一种电子设备。如图5所示,该电子设备500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制电子设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如所述组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、8G或5G),或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述所述的查询方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备500的处理器520执行以完成上述方法。可选地,例如,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开实施的又一方面,本公开实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述所述的查询方法。
根据本公开实施例的又一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述所述的查询方法。
在此提供的页面切换方案不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的信息提取方案中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种查询方法,其特征在于,所述方法包括:
获取查询条件,其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询;
根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键;
根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
2.根据权利要求1所述的查询方法,其特征在于,所述获取查询条件,包括:
接收用户输入的查询关键词,其中,所述查询关键词包括用于表示字段名称的目标词语以及至少部分字段的取值;
获取所述分布式搜索引擎中与所述目标词语相匹配的字段名称,并将与所述目标词语相匹配的字段名称,以及所述至少部分字段的取值,作为所述查询条件。
3.根据权利要求1所述的查询方法,其特征在于,所述查询条件包括:第i个所述目标索引中的至少一个第一字段的名称,以及所述第一字段的取值,i取1~N中的每一个整数,N表示所述目标索引的数量;
所述根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键,包括:
在i取1~N中的每一个整数时,获取第i个所述目标索引中,与所述查询条件中包括的第i个所述目标索引中的所述第一字段的取值相匹配的数据条目,以作为第i个所述目标索引的候选数据;
在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键。
4.根据权利要求3所述的查询方法,其特征在于,所述查询条件还包括:第i个所述目标索引中的M个第二字段的名称以及候选索引的标识信息,其中,第1个所述目标索引中的第j个所述第二字段至第N个所述目标索引中的第j个所述第二字段所表示的对象相同,j为1~M中的整数,M大于或等于1,所述候选索引包括所述目标索引中所述目标数据包括的字段所处的索引;
所述在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键,包括:
在i取1~N中的每一个整数,j取1~M中的每一个整数时,遍历第i个所述目标索引的候选数据中的每一个数据条目,将每一个数据条目中的第i个所述目标索引中的第j个所述第二字段的取值与该数据条目的主键,组成一个键值对,并将得到的键值对存储于Hj i标识的第一目标集合中;
在j取1~M中的每一个整数时,获取Hj 1标识的第一目标集合至Hj N标识的第一目标集合中的键值对中的相同取值,以作为第j个目标取值;
在j取1~M中的每一个整数,k取1~L中的每一个整数时,获取第j个所述目标取值在第k个所述候选索引的候选数据中所处数据条目的主键,并存储于Pj k标识的第二目标集合中,其中,L表示所述候选索引的数量;
在k取1~L中的每一个整数时,获取P1 k~Pj k标识的所述第二目标集合的交集,以作为第k个第三目标集合,并将所述第三目标集合中包括的主键确定为所述目标主键。
5.根据权利要求4所述的查询方法,其特征在于,所述查询条件中还包括:第k个所述候选索引中的至少一个第三字段的名称;
所述根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据,包括:
在k取1~L中的每一个整数时,在第k个所述候选索引的候选数据中,获取第k个所述第三目标集合中的主键所标识的数据条目中,第k个所述候选索引中的所述第三字段的取值,以作为第k批待处理数据;
将第1批待处理数据至第L批待处理数据拼接为所述目标数据。
6.一种查询装置,其特征在于,所述装置包括:
筛选条件解析模块,被配置为获取查询条件,其中,所述查询条件用于指示针对分布式搜索引擎中的至少两个目标索引进行关联查询;
主键获取模块,被配置为根据所述查询条件,获取所要查询的目标数据包括的字段在所述目标索引中所处的数据条目的主键,以作为目标主键;
索引字段查询拼接模块,被配置为根据所述查询条件,从所述目标主键标识的数据条目中,提取所述目标数据。
7.根据权利要求6所述的查询装置,其特征在于,所述筛选条件解析模块具体被配置为:
接收用户输入的查询关键词,其中,所述查询关键词包括用于表示字段名称的目标词语以及至少部分字段的取值;
获取所述分布式搜索引擎中与所述目标词语相匹配的字段名称,并将与所述目标词语相匹配的字段名称,以及所述至少部分字段的取值,作为所述查询条件。
8.根据权利要求6所述的查询装置,其特征在于,所述查询条件包括:第i个所述目标索引中的至少一个第一字段的名称,以及所述第一字段的取值,i取1~N中的每一个整数,N表示所述目标索引的数量;所述主键获取模块包括:
查询字段子模块,被配置为在i取1~N中的每一个整数时,获取第i个所述目标索引中,与所述查询条件中包括的第i个所述目标索引中的所述第一字段的取值相匹配的数据条目,以作为第i个所述目标索引的候选数据;
主键映射子模块,被配置为在第1个所述目标索引的候选数据至第N个所述目标索引的候选数据的主键中,获取所要查询的目标数据包括的字段所处数据条目的主键,以作为目标主键。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的查询方法。
10.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够实现如权利要求1至5中任一项所述的查询方法。
CN202011282795.1A 2020-11-16 2020-11-16 查询方法、装置、电子设备及存储介质 Active CN112463827B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011282795.1A CN112463827B (zh) 2020-11-16 2020-11-16 查询方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011282795.1A CN112463827B (zh) 2020-11-16 2020-11-16 查询方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112463827A true CN112463827A (zh) 2021-03-09
CN112463827B CN112463827B (zh) 2024-03-12

Family

ID=74837489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011282795.1A Active CN112463827B (zh) 2020-11-16 2020-11-16 查询方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112463827B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579573A (zh) * 2022-03-03 2022-06-03 北京百度网讯科技有限公司 信息检索方法、装置、电子设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120095984A1 (en) * 2010-10-18 2012-04-19 Peter Michael Wren-Hilton Universal Search Engine Interface and Application
CN110321344A (zh) * 2019-05-20 2019-10-11 平安普惠企业管理有限公司 关联数据的信息查询方法、装置、计算机设备及存储介质
CN111767303A (zh) * 2020-07-28 2020-10-13 腾讯科技(深圳)有限公司 一种数据查询方法、装置、服务器及可读存储介质
CN111797095A (zh) * 2020-06-10 2020-10-20 阿里巴巴集团控股有限公司 索引构建方法和json数据查询方法
CN111797134A (zh) * 2020-06-23 2020-10-20 北京小米松果电子有限公司 分布式数据库的数据查询方法、装置和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120095984A1 (en) * 2010-10-18 2012-04-19 Peter Michael Wren-Hilton Universal Search Engine Interface and Application
CN110321344A (zh) * 2019-05-20 2019-10-11 平安普惠企业管理有限公司 关联数据的信息查询方法、装置、计算机设备及存储介质
CN111797095A (zh) * 2020-06-10 2020-10-20 阿里巴巴集团控股有限公司 索引构建方法和json数据查询方法
CN111797134A (zh) * 2020-06-23 2020-10-20 北京小米松果电子有限公司 分布式数据库的数据查询方法、装置和存储介质
CN111767303A (zh) * 2020-07-28 2020-10-13 腾讯科技(深圳)有限公司 一种数据查询方法、装置、服务器及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579573A (zh) * 2022-03-03 2022-06-03 北京百度网讯科技有限公司 信息检索方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN112463827B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
CN108932253B (zh) 多媒体搜索结果展示方法及装置
CN107526744B (zh) 一种基于搜索的信息展示方法和装置
WO2017157040A1 (zh) 搜索方法、装置以及用于搜索的装置
CN109614482B (zh) 标签的处理方法、装置、电子设备及存储介质
CN110232137B (zh) 一种数据处理方法、装置和电子设备
CN109189986B (zh) 信息推荐方法、装置、电子设备和可读存储介质
CN107315487B (zh) 一种输入处理方法、装置及电子设备
CN109918565B (zh) 一种搜索数据的处理方法、装置及电子设备
CN111125344B (zh) 相关词推荐方法和装置
CN106815291B (zh) 搜索结果项展现方法、装置和用于搜索结果项展现的装置
CN105373580A (zh) 主题显示方法及装置
US11546663B2 (en) Video recommendation method and apparatus
CN111708943A (zh) 一种搜索结果展示方法、装置和用于搜索结果展示的装置
CN112463827B (zh) 查询方法、装置、电子设备及存储介质
CN112000840B (zh) 一种业务对象的展示方法和装置
CN111241844A (zh) 一种信息推荐方法及装置
CN107239462B (zh) 一种搜索方法和装置以及浏览器
CN110020082B (zh) 一种搜索方法及装置
CN107301188B (zh) 一种获取用户兴趣的方法及电子设备
US20220382803A1 (en) Syndication of Secondary Digital Assets with Photo Library
CN112052395B (zh) 一种数据处理方法及装置
CN110175293B (zh) 一种确定新闻脉络的方法、装置及电子设备
CN114117058A (zh) 账户信息的确定方法、装置、电子设备及存储介质
CN110362686B (zh) 一种词库的生成方法、装置、终端设备和服务器
CN112667124A (zh) 一种信息处理方法、装置和用于信息处理的装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant