CN106250409A - 数据查询方法及装置 - Google Patents
数据查询方法及装置 Download PDFInfo
- Publication number
- CN106250409A CN106250409A CN201610581324.8A CN201610581324A CN106250409A CN 106250409 A CN106250409 A CN 106250409A CN 201610581324 A CN201610581324 A CN 201610581324A CN 106250409 A CN106250409 A CN 106250409A
- Authority
- CN
- China
- Prior art keywords
- data
- fragmentation
- file
- index
- keyword
- 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.)
- Pending
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据查询方法,在实施前,预先将数据文件分片,并确定数据分片中所包含的单词,建立单词与数据分片的索引文件,在实施中,接收到数据查询请求后,提取其中的关键字,首先使用索引文件,定位包含关键字的数据分片,然后再在数据分片中,精细查询包含关键字的数据单元。与现有方式相比,本申请并不需要将全部数据文件读取至内存中逐行查询,查询效率较高。另外,本申请还提供了一种数据查询装置,用以保证所述方法在实际中的应用及实现。
Description
技术领域
本申请涉及数据查询技术,更具体地,涉及数据查询方法及装置。
背景技术
数据查询,是在大量的数据文件中,查询符合某种条件的目标数据。例如,审计活动中,审计人员在海量金融记录的数据文件中,查询特定用户的金融记录。
现有的查询方法是,将全部的数据文件读取到内存中,对数据文件逐行判断,以查找目标数据。该种数据查询方法查询效率较低。
发明内容
有鉴于此,本申请提供了一种数据查询方法,用以提高数据查询效率。另外,本申请还提供了一种数据查询装置,用以保证所述方法在实际中的应用及实现。
为实现所述目的,本申请提供的技术方案如下:
一种数据查询方法,包括:
接收到数据查询请求后,提取所述数据查询请求中的关键字;
使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片;其中,所述数据分片中包含至少一个数据单元;
在所述数据分片中,查询包含所述关键字的数据单元。
可选地,所述索引文件的建立步骤包括:
将数据文件分割为多个数据分片;
对所述数据分片进行分词操作,获得多个单词;
对所述多个单词进行去重操作后,建立去重后的单词与对应数据分片的索引关系。
可选地,所述数据分片内包含多个数据单元;相应地,所述对所述数据分片进行分词操作,获得多个单词,包括:
并行获取每个所述数据分片,并按照以下步骤并行处理每个所述数据分片:
依次读取所述数据分片的各个数据单元,对所述数据单元进行分词操作后,获得与所述数据分片对应的多个单词。
可选地,所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片,包括:
在预先建立的索引文件中,查询与所述关键字相同的单词;
确定与所述单词具有索引关系的数据分片。
可选地,预先建立的索引文件为一个,且所述索引文件是多个数据文件的索引文件;所述数据查询请求中包含数据文件标识;
相应地,在所述提取所述数据查询请求中的关键字时,还包括:
提取所述数据查询请求中的数据文件标识;
在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片之后,及所述在所述数据分片中,查询包含所述关键字的数据单元之前,还包括:
在所述数据分片中,选择与所述数据文件标识对应的数据分片。
可选地,预先建立的索引文件为多个,且不同的索引文件对应不同的数据文件;所述数据查询请求中包含数据文件标识;
相应地,在所述提取所述数据查询请求中的关键字时,还包括:
提取所述数据查询请求中的数据文件标识;
所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片,包括:
在多个所述索引文件中,选择与所述数据文件标识对应的索引文件;
使用确定出的所述索引文件,查询与所述关键字具有索引关系的数据分片。
一种数据查询装置,包括:
关键字提取单元,用于接收到数据查询请求后,提取所述数据查询请求中的关键字;
数据分片查询单元,用于使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片;其中,所述数据分片中包含至少一个数据单元;
数据单元查询单元,用于在所述数据分片中,查询包含所述关键字的数据单元。
可选地,数据查询装置还包括:索引文件建立单元,用于建立索引文件;
其中,在建立索引文件方面,所述索引文件建立单元具体用于:
将数据文件分割为多个数据分片;
对所述数据分片进行分词操作,获得多个单词;
对所述多个单词进行去重操作后,建立去重后的单词与对应数据分片的索引关系。
可选地,所述数据分片内包含多个数据单元;相应地,在所述对所述数据分片进行分词操作,获得多个单词的方面,所述索引文件建立单元具体用于:
并行获取每个所述数据分片,并按照以下步骤并行处理每个所述数据分片:
依次读取所述数据分片的各个数据单元,对所述数据单元进行分词操作后,获得与所述数据分片对应的多个单词。
可选地,在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片的方面,所述数据分片查询单元具体用于:
在预先建立的索引文件中,查询与所述关键字相同的单词;
确定与所述单词具有索引关系的数据分片。
可选地,预先建立的索引文件为一个,且所述索引文件是多个数据文件的索引文件;所述数据查询请求中包含数据文件标识;
相应地,该装置还包括:
数据文件标识提取单元,用于在所述提取所述数据查询请求中的关键字时,提取所述数据查询请求中的数据文件标识;
数据分片选择单元,用于在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片之后,及所述在所述数据分片中,查询包含所述关键字的数据单元之前,在所述数据分片中,选择与所述数据文件标识对应的数据分片。
可选地,预先建立的索引文件为多个,且不同的索引文件对应不同的数据文件;所述数据查询请求中包含数据文件标识;
相应地,该装置还包括:
数据文件标识提取单元,用于在所述提取所述数据查询请求中的关键字时,提取所述数据查询请求中的数据文件标识;
在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片的方面,所述数据分片查询单元具体用于:
在多个所述索引文件中,选择与所述数据文件标识对应的索引文件;
使用选择出的所述索引文件,查询与所述关键字具有索引关系的数据分片。
由以上技术方案可知,本申请提供了一种数据查询方法,在实施前,预先将数据文件分片,并确定数据分片中所包含的单词,建立单词与数据分片的索引文件,在实施中,接收到数据查询请求后,提取其中的关键字,首先使用索引文件,定位包含关键字的数据分片,然后再在数据分片中,精细查询包含关键字的数据单元。与现有方式相比,本申请并不需要将全部数据文件读取至内存中逐行查询,查询效率较高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的数据查询方法实施例1的流程图;
图2为本申请提供的建立索引文件的流程图;
图3为本申请提供的数据查询方法实施例2的流程图;
图4为本申请提供的数据查询方法实施例3的流程图;
图5为本申请提供的数据查询装置实施例1的结构示意图;
图6为本申请提供的数据查询装置实施例2的结构示意图;
图7为本申请提供的数据查询装置实施例3的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了方便理解本申请的技术方案,首先结合具体应用场景对本申请进行说明。
一服务系统可以为大量用户如1000个用户提供虚拟机,虚拟机每天都会生成大量的日志文件,那么,该服务系统每天生成的日志文件可能达到数亿行如50亿行。若用户想要查询某条日志文件,现有的服务系统逐行读取日志文件进行匹配,该种方式处理效率较低。
然而,本申请中,按照分片规模相近的原则预先对日志文件进行分片,获得数据分片后,根据数据分片建立索引文件。索引文件记录的是数据分片中的单词与数据分片的对应关系。
例如,日志文件的数据分片77中包含单词“端口访问警报”,则索引关系可以表示为“端口访问警报--数据分片77”。若单词“端口访问警报”还出现在其他的数据分片如数据分片88中,则索引关系可以表示为“端口访问警报--数据分片77+数据分片88”。
当然,数据分片77中还包括其他单词如“连接超时”,则索引文件中还包括“连接超时--数据分片77”的索引关系。
需要说明的是,以上示例中的横线及加号仅仅是为了形象说明,在计算机中,并非使用此种方式表示索引关系。
服务系统建立索引文件后,便可以使用该索引文件进行数据查询。
例如,服务系统接收到一数据查询请求,该数据查询请求中包含的关键字为“连接超时”,则根据索引文件,可以查询到“连接超时”与数据分片77具有索引关系,因此,将数据分片77提取到内存中。在内存中,依次遍历该数据分片77中的每一行日志,以查找具体包含该关键字的那个或那些行日志。
以上结合具体应用场景对本申请的技术方案进行了说明,需要说明的是,本申请并不局限应用于上述场景中。另外,以上应用场景中的技术手段可以通过其他方式实现。
见图1,其示出了本申请提供的数据查询方法实施例1的流程。如图1所示,本实施例可以具体包括以下步骤S101~步骤S103。
步骤S101:提取数据查询请求中的关键字。
其中,数据查询请求中包含关键字,接收到数据查询请求后,提取其中的关键字。以上述应用场景为例,提取到的关键字为“连接超时”。
需要说明的是,关键字可以是一个,也可以是多个。
步骤S102:使用索引文件,查询与关键字具有索引关系的数据分片。
在实施前,预先建立有索引文件,索引文件中记录的是单词与数据分片的索引关系。提取到关键字后,在索引文件中,查找与关键字相同的单词。然后,确定与该单词具有索引关系的数据分片。
需要说明的是,若数据查询请求中包含多个关键字,需要查询与全部关键字均具有索引关系的数据分片。也就是说,查询到的数据分片可以是一个,也可以是多个,但每个数据分片需要与全部的关键字均具有索引关系。
查询到的数据分片中包含至少一个数据单元。数据单元的形式与数据分片的形式是相关的,或者,数据单元的形式与数据文件的形式是相关的。组成数据文件的基本单元便是数据单元。
例如,数据文件包含多张数据表,将数据表分片后得到的数据分片为数据表或数据表的一部分。组成数据表的基本单元是记录,因此,数据表形式的数据分片的数据单元为记录。
又如,数据文件包含多个日志文件,将日志文件分片后得到的数据分片为日志文件或日志文件的一部分。组成日志文件的基本单元是日志行,因此,日志文件形式的数据分片的数据单元为日志行。
步骤S103:在数据分片中,查询包含所述关键字的数据单元。
具体地,可以将该数据分片读取到内存中进行精细查询。
数据分片中包含多个数据单元,在数据单元中精细查询,以查询哪个数据单元包含该关键字。例如,在数据表形式的数据分片中,依次读取各个记录,并判断记录中是否包含关键字。需要说明的是,若数据查询请求中包含多个关键字,需要查询的是包含所有关键字的记录。
由以上技术方案可知,本实施例提供的数据查询方法,在实施前,预先将数据文件分片,并确定数据分片中所包含的单词,建立单词与数据分片的索引文件,在实施中,接收到数据查询请求后,提取其中的关键字,首先使用索引文件,定位包含关键字的数据分片,然后在数据分片中,精细查询包含关键字的数据单元。与现有方式相比,本申请并不需要将全部数据文件读取至内存中逐行查询,查询效率较高。本申请的优势在对海量数据文件的查询过程中体现得较为明显。
见图2,其示出了索引文件的建立流程,具体包括步骤S201~步骤S203。
步骤S201:将数据文件分割为多个数据分片。
具体地,可以将数据文件切分为固定大小或可变大小的数据分片(表示分片规模相同或相近)。需要说明的是,切分时,需要保证每个数据分片中的数据单元是完整的。
例如,切分数据表是,需要保证切分后的数据表中每一行记录是完整的。
数据分片的表示方法可以是变量组,如变量组:
<F,Path,Desc,Mstart,Mend>。
其中,F表示数据文件的名称,Path表示数据文件的存储路径,Desc表示数据文件的描述标签,Mstart表示数据分片的起始偏移地址,Mend表示数据分片的末尾偏移地址。
数据分片具有标识,该表示具有唯一性。标识的一种具体形式是编号,编号的生成方式可以是,在分割数据文件时,根据分割时间和/或分割得到的数据分片的内容,计算得到唯一值,该唯一值作为数据分片的编号。
步骤S202:对数据分片进行分词操作,获得多个单词。
数据分片为多个,为了提高分词的效率,可以并行读取各个数据分片,按照对每个数据分片均执行以下分词操作:
数据分片包含多个数据单元,逐行读取数据单元并进行分词,从而得到每个数据单元对应的单词。在数据分片为数据表的示例中,逐行读取数据表每行的记录,将记录按列拆分为单词。
这样,数据分片会得到多个单词,该多个单词可以组成一个单词集合。需要说明的是,每个数据分片具有各自对应的单词集合。
需要说明的是,根据实际需要,分词操作获得的每个单词,并不一定均放入分词集合中进行后续步骤S203。
或者,分词操作获得的单词可以进行处理后才放入单词集合。例如,若分词为连续值,则可以使用函数将连续值影射为离散值,将该离散值放入单词集合。
步骤S203:对多个单词进行去重操作后,建立去重后的单词与对应数据分片的索引关系。
具体地,数据分片的单词集合中可能包含重复的单词,因此,需要进行去重操作。去重后相同的单词仅保留一个。为去重后的单词,建立与对应的数据分片之间的索引关系。单词对应的数据分片指的是,单词从哪个数据分片中分词出来的,则该单词与该数据分片是对应的。
例如,数据分片1分词后,获得的是单词集合为{A、B},数据分片2分词后,获得的是单词集合为{A、C}。去重后包含3个单词,分别为单词A、单词B及单词C。
针对单词A,建立的索引关系包括:单词A与数据分片1、及单词A与数据分片2。可以形象化表示为:单词A--数据分片1+数据分片2。
针对单词B,建立的索引关系包括:单词B与数据分片1,可以表示为,单词B--数据分片1。
针对单词C,建立的索引关系包括:单词C与数据分片2,可以表示为,单词C--数据分片2。
这样,为每个单词均建立了索引关系,索引关系的集合组成了索引文件。
在建立索引关系时,可以使用solr(一种基于倒排索引原理实现的文档索引与查询的引擎)工具。具体地,可以将单词与对应的数据分片的编号输入至solr工具中,该工具可以自动地建立两者之间的索引关系。因此,可以认为索引文件是由solr工具维护的。
需要说明的是,本申请应用在大数据量的场景中,有益效果更加明显,数据查询效率较高。因为,数据文件较为庞大,但本申请针对数据量较大的原始数据文件,建立了数据量较小的索引文件,使用该索引文件可以进行初步的模糊查询。另外,有关数据分片的处理都可以并行进行,如对数据分片的分词操作,在数据分片中查询包含关键字的数据单元等。
在实际应用中,原始的数据文件的个数可以是一个,也可以多个。在建立索引文件时,可以为每个数据文件单独建立各自的索引文件,也可以针对多个数据文件只建立一个索引文件。
第一种,为每个数据文件建立各自的索引文件。
获取到多个数据文件后,分别对每个数据文件单独执行上述图2所示的索引文件建立过程,需要说明的是,建立的索引文件与数据文件之间具有对应关系,对应关系的形式可以是索引文件具有数据文件标识,用以表示该索引文件为哪个数据文件的索引文件。
例如,建立的索引文件为IndexFile-1,其具有的数据文件标识为a,用以表示该索引文件IndexFile-1为数据文件a的索引文件。
针对上述形式的索引文件,本申请提供了对应的数据查询方法实施例。见图3所示,其示出了数据查询方法实施例3的流程,具体包括:步骤S301~步骤S304。
步骤S301:接收到数据查询请求后,提取其中的关键字及数据文件标识。
接收到数据查询请求后,可以将数据查询请求处理为:<F',Path',Desc',{keywords}>的形式。其中,F'表示查询请求指定的数据文件名,Path'表示该数据文件的存储路径,Desc'表示该数据文件的描述标签。在不同的应用场景中,此三项信息可以是可选项。若数据查询请求中包含此三项信息,则可以提取其中的数据文件标识F'。
另外,{keywords}表示一系列关键词的集合,表示数据分片中必须包含该集合中的全部关键词。
从数据查询请求中提取到关键字{keywords}以及数据文件标识F'。
步骤S302:在多个索引文件中,选择数据文件标识对应的索引文件。
如上所述,每个数据文件均具有各自对应的索引文件。根据从数据查询请求中提取到的数据文件标识,在多个索引文件中,选择该数据文件标识对应的索引文件。
例如,从数据查询请求中提取到的数据文件标识F'=a,选择出该数据文件标识a对应的索引文件为IndexFile-1。
步骤S303:使用索引文件,查询与关键字具有索引关系的数据分片。
使用上一步骤确定出的索引文件,在该索引文件中,查询关键字的索引关系指向的数据分片。可以理解的是,使用的索引文件为查询指定的数据文件的索引文件,则查询到的数据分片必然为该数据文件切分后的数据分片。
步骤S304:在数据分片中,查询包含所述关键字的数据单元。
如上所述,数据分片中包含多个数据单元,可以分别读取数据单元,并判断该数据单元中是否包含全部的关键字,若是,则输出该数据单元至查询结果集中。查询结束后,可以将结果集返回给查询端。
以上的数据查询方式中,每个数据文件均具有索引文件,索引文件的个数较多,因此,需要占据更多的存储空间。在查询时,首先根据数据查询请求中的数据文件标识,确定索引文件,根据该索引文件,便可以直接定位到数据文件的数据分片,因此,查询效率较高。
第二种,为多个数据文件建立一个索引文件。
获取到多个数据文件后,分别对每个数据文件切片,获得数据分片。对每个数据分片进行分词操作,获得每个数据分片各自的单词集合。将全部单词集合融合在一个集合中进行去重后,确定去重后的单词有哪些,建立去重后的单词与对应数据分片之间的索引关系。索引关系的集合即索引文件。
这样,多个数据文件的单词融合在一个索引文件中,单词与数据分片之间具有索引关系,数据分片具有文件标识,用以表示数据分片属于哪一数据文件。
例如,索引文件中的一个索引关系是“连接超时--数据分片77”,其中,数据分片77具有文件标识a,用以表示数据分片77属于文件a。
针对上述形式的索引文件,本申请提供了相应的数据查询方法实施例。见图4,其示出了数据查询方法实施例3的流程,具体包括步骤S401~步骤S404。
步骤S401:接收到数据查询请求后,提取其中的关键字及数据文件标识。
有关此步骤的说明可以参见上述步骤S301,此处并不赘述。
步骤S402:使用索引文件,查询与关键字具有索引关系的数据分片。
可以理解的是,本步骤中的索引文件是根据多个数据文件生成的一个索引文件。该索引文件中同样记录的是单词与数据分片之间的索引关系,只不过是,单词来源于多个数据文件。
将数据查询请求中的关键字与单词进行比对,并根据索引关系,来确定数据分片。
步骤S403:在数据分片中,选择与数据文件标识对应的数据分片。
前已述及,该索引文件中的数据分片具有文件标识,因此,使用数据查询请求中的数据文件标识可以进行再次筛选,即在步骤S402查询到的数据分片中,选择与数据查询请求中的数据文件标识具有对应关系的数据分片。
例如,步骤S402查询到的数据分片包括数据分片77及数据分片88,其中,数据分片具有的文件标识为a,数据分片88具有的文件标识为b。数据查询请求中的数据文件标识为a,因此,本步骤选择的数据分片为数据分片77。
步骤S404:在数据分片中,查询包含关键字的数据单元。
有关此步骤的说明可以参见上述步骤S304,此处并不赘述。
由以上技术方案可知,与图3所示的数据查询方法相比,图4所示的数据查询方法中,为多个数据文件生成一个索引文件,索引文件的数据较少,占据的存储空间较少。在查询时,根据该索引文件确定出数据分片后,还需要根据数据文件标识对数据分片再次筛选,查询效率相对较低。
需要说明的是,以上为多个数据文件建立的索引文件可以认为是倒排索引,倒排索引中记录的是单词与数据分片之间的对应关系,简单而言就是,单词出现在哪些数据分片中,例如“连接超时”--S1+S3,表示,“连接超时”这个单词出现在数据分片S1和数据分片S3中。
当然,还可以建立正向索引,记录的是数据文件与数据分片之间的对应关系,简单而言就是,数据文件被分割为哪些数据分片,例如,数据文件a--S1+S2表示,数据文件a被分割为数据分片S1和数据分片S2;数据文件b--S3+S4表示,数据文件b被分割为数据分片S3和数据分片S4。
这样,在进行数据查询时,接收到的查询请求中包含数据文件的标识,如数据文件的描述符,根据数据文件的描述符可以查找到对应的数据文件,进而根据正向索引查询到该数据文件所对应的数据分片集合,为了与下文的另一数据分片集合区分,可以将该数据分片集合称为第一数据分片集合。
数据查询请求中还包含关键字,根据倒排索引,可以查询到该关键字所对应的数据分片集合,将该数据分片集合称为第二数据分片集合。
确定第一数据分片集合与第二数据分片集合中的交集,交集中的数据分片即符合查询请求的数据分片,进而在该数据分片中查询包含关键字的数据单元。
例如,查询请求是想要从数据文件a中查询“连接超时”这个关键字。其中,根据正向索引,查询数据文件a的数据分片,以上述示例为例,查询到的数据分片为S1和数据分片S2。根据倒排索引,查询“连接超时”对应的数据分片,以上述示例为例,查询到的数据分片为数据分片S1和数据分片S3。两个数据分片集合的交集为数据分片S1,便可以在数据分片S1中进行精确查询,准确定位数据分片S1所在的数据单元。
该种技术方案中,建立了正向索引及倒排索引两种索引,更加系统地管理存储的数据,且可以快速地进行数据查询。
以上多种技术方案中,索引文件的形式不同,数据查询方法的效率相应不同。在实际应用中,可以根据不同的查询需求,选择不同的方案。
以下对本申请提供的数据查询装置进行介绍,需要说明的是,下文有关数据查询装置的说明可以参见上文提供的数据查询方法,以下并不赘述。
与上述数据查询方法实施例1相对应,本申请提供了一种数据查询装置实施例1。
见图5,该数据查询装置实施例1可以具体包括:关键字提取单元501、数据分片查询单元502、及数据单元查询单元503。
关键字提取单元501,用于接收到数据查询请求后,提取数据查询请求中的关键字;
数据分片查询单元502,用于使用预先建立的索引文件,查询与关键字具有索引关系的数据分片;其中,数据分片中包含至少一个数据单元;
数据单元查询单元503,用于在数据分片中,查询包含关键字的数据单元。
另外,该数据查询装置还可以包括:索引文件建立单元,用于建立索引文件。具体地,索引文件建立单元可以通过执行上述图2所示的步骤S201~步骤S203,来建立索引文件。
数据分片内包含多个数据单元;相应地,在执行步骤S202时,索引文件建立单元具体用于:
并行获取每个数据分片,并按照以下步骤并行处理每个数据分片:
依次读取数据分片的各个数据单元,对数据单元进行分词操作后,获得与数据分片对应的多个单词。
另外,在执行使用预先建立的索引文件,查询与关键字具有索引关系的数据分片的步骤时,数据分片查询单元502可以具体用于:
在预先建立的索引文件中,查询与关键字相同的单词;
确定与单词具有索引关系的数据分片。
在一个示例中,建立的索引文件为一个,且索引文件是多个数据文件的索引文件。另外,数据查询请求中包含数据文件标识。
针对此种场景,本申请提供了数据查询装置实施例2。如图6所示,该装置实施例2可以具体包括:
关键字提取单元601,用于接收到数据查询请求后,提取数据查询请求中的关键字;
数据文件标识提取单元602,用于在提取数据查询请求中的关键字时,提取数据查询请求中的数据文件标识;
数据分片查询单元603,用于使用预先建立的索引文件,查询与关键字具有索引关系的数据分片;其中,数据分片中包含至少一个数据单元;
数据分片选择单元604,用于在数据分片中,选择与数据文件标识对应的数据分片;
数据单元查询单元605,用于在选择出的数据分片中,查询包含关键字的数据单元。
在另一个示例中,建立的索引文件为多个,且不同的索引文件对应不同的数据文件。另外,数据查询请求中包含数据文件标识。
针对此种场景,本申请提供了数据查询装置实施例3。如图7所示,该装置实施例3可以具体包括:
关键字提取单元701,用于接收到数据查询请求后,提取数据查询请求中的关键字;
数据文件标识提取单元702,用于在提取数据查询请求中的关键字时,提取数据查询请求中的数据文件标识;
数据分片查询单元703,用于在多个索引文件中,选择与数据文件标识对应的索引文件,并使用选择出的索引文件,查询与关键字具有索引关系的数据分片;
数据单元查询单元704,用于在数据分片中,查询包含关键字的数据单元。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种数据查询方法,其特征在于,包括:
接收到数据查询请求后,提取所述数据查询请求中的关键字;
使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片;其中,所述数据分片中包含至少一个数据单元;
在所述数据分片中,查询包含所述关键字的数据单元。
2.根据权利要求1所述的数据查询方法,其特征在于,所述索引文件的建立步骤包括:
将数据文件分割为多个数据分片;
对所述数据分片进行分词操作,获得多个单词;
对所述多个单词进行去重操作后,建立去重后的单词与对应数据分片的索引关系。
3.根据权利要求2所述的数据查询方法,其特征在于,所述数据分片内包含多个数据单元;相应地,所述对所述数据分片进行分词操作,获得多个单词,包括:
并行获取每个所述数据分片,并按照以下步骤并行处理每个所述数据分片:
依次读取所述数据分片的各个数据单元,对所述数据单元进行分词操作后,获得与所述数据分片对应的多个单词。
4.根据权利要求2所述的数据查询方法,其特征在于,所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片,包括:
在预先建立的索引文件中,查询与所述关键字相同的单词;
确定与所述单词具有索引关系的数据分片。
5.根据权利要求1所述的数据查询方法,其特征在于,预先建立的索引文件为一个,且所述索引文件是多个数据文件的索引文件;所述数据查询请求中包含数据文件标识;
相应地,在所述提取所述数据查询请求中的关键字时,还包括:
提取所述数据查询请求中的数据文件标识;
在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片之后,及所述在所述数据分片中,查询包含所述关键字的数据单元之前,还包括:
在所述数据分片中,选择与所述数据文件标识对应的数据分片。
6.根据权利要求1所述的数据查询方法,其特征在于,预先建立的索引文件为多个,且不同的索引文件对应不同的数据文件;所述数据查询请求中包含数据文件标识;
相应地,在所述提取所述数据查询请求中的关键字时,还包括:
提取所述数据查询请求中的数据文件标识;
所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片,包括:
在多个所述索引文件中,选择与所述数据文件标识对应的索引文件;
使用确定出的所述索引文件,查询与所述关键字具有索引关系的数据分片。
7.一种数据查询装置,其特征在于,包括:
关键字提取单元,用于接收到数据查询请求后,提取所述数据查询请求中的关键字;
数据分片查询单元,用于使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片;其中,所述数据分片中包含至少一个数据单元;
数据单元查询单元,用于在所述数据分片中,查询包含所述关键字的数据单元。
8.根据权利要求7所述的数据查询装置,其特征在于,还包括:索引文件建立单元,用于建立索引文件;
其中,在建立索引文件方面,所述索引文件建立单元具体用于:
将数据文件分割为多个数据分片;
对所述数据分片进行分词操作,获得多个单词;
对所述多个单词进行去重操作后,建立去重后的单词与对应数据分片的索引关系。
9.根据权利要求8所述的数据查询装置,其特征在于,所述数据分片内包含多个数据单元;相应地,在所述对所述数据分片进行分词操作,获得多个单词的方面,所述索引文件建立单元具体用于:
并行获取每个所述数据分片,并按照以下步骤并行处理每个所述数据分片:
依次读取所述数据分片的各个数据单元,对所述数据单元进行分词操作后,获得与所述数据分片对应的多个单词。
10.根据权利要求8所述的数据查询装置,其特征在于,在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片的方面,所述数据分片查询单元具体用于:
在预先建立的索引文件中,查询与所述关键字相同的单词;
确定与所述单词具有索引关系的数据分片。
11.根据权利要求7所述的数据查询装置,其特征在于,预先建立的索引文件为一个,且所述索引文件是多个数据文件的索引文件;所述数据查询请求中包含数据文件标识;
相应地,该装置还包括:
数据文件标识提取单元,用于在所述提取所述数据查询请求中的关键字时,提取所述数据查询请求中的数据文件标识;
数据分片选择单元,用于在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片之后,及所述在所述数据分片中,查询包含所述关键字的数据单元之前,在所述数据分片中,选择与所述数据文件标识对应的数据分片。
12.根据权利要求7所述的数据查询装置,其特征在于,预先建立的索引文件为多个,且不同的索引文件对应不同的数据文件;所述数据查询请求中包含数据文件标识;
相应地,该装置还包括:
数据文件标识提取单元,用于在所述提取所述数据查询请求中的关键字时,提取所述数据查询请求中的数据文件标识;
在所述使用预先建立的索引文件,查询与所述关键字具有索引关系的数据分片的方面,所述数据分片查询单元具体用于:
在多个所述索引文件中,选择与所述数据文件标识对应的索引文件;
使用选择出的所述索引文件,查询与所述关键字具有索引关系的数据分片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610581324.8A CN106250409A (zh) | 2016-07-21 | 2016-07-21 | 数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610581324.8A CN106250409A (zh) | 2016-07-21 | 2016-07-21 | 数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250409A true CN106250409A (zh) | 2016-12-21 |
Family
ID=57604382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610581324.8A Pending CN106250409A (zh) | 2016-07-21 | 2016-07-21 | 数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250409A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038188A (zh) * | 2017-12-11 | 2018-05-15 | 中国银行股份有限公司 | 一种文件处理方法及装置 |
CN108427675A (zh) * | 2017-02-13 | 2018-08-21 | 阿里巴巴集团控股有限公司 | 构建索引的方法及设备 |
CN110867179A (zh) * | 2019-11-12 | 2020-03-06 | 云南电网有限责任公司德宏供电局 | 基于语音识别、IKAnalyzer分词和hdfs的文件存储及检索方法和系统 |
CN111026827A (zh) * | 2019-12-06 | 2020-04-17 | 北京地拓科技发展有限公司 | 一种土壤侵蚀因子的数据服务方法、装置和电子设备 |
CN112232903A (zh) * | 2020-09-27 | 2021-01-15 | 北京五八信息技术有限公司 | 一种业务对象的展示方法和装置 |
WO2022016865A1 (zh) * | 2020-07-24 | 2022-01-27 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、系统、设备以及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070266044A1 (en) * | 2004-02-20 | 2007-11-15 | Sand Technology Inc. | Searchable archive |
CN101727502A (zh) * | 2010-01-25 | 2010-06-09 | 中兴通讯股份有限公司 | 一种数据查询方法及装置、系统 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | 中国移动通信集团公司 | 分布式数据库系统、在其中建立索引的方法和查询方法 |
CN103631910A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 一种分布式数据库多列复合查询的系统及方法 |
-
2016
- 2016-07-21 CN CN201610581324.8A patent/CN106250409A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070266044A1 (en) * | 2004-02-20 | 2007-11-15 | Sand Technology Inc. | Searchable archive |
CN101727502A (zh) * | 2010-01-25 | 2010-06-09 | 中兴通讯股份有限公司 | 一种数据查询方法及装置、系统 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | 中国移动通信集团公司 | 分布式数据库系统、在其中建立索引的方法和查询方法 |
CN103631910A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 一种分布式数据库多列复合查询的系统及方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427675A (zh) * | 2017-02-13 | 2018-08-21 | 阿里巴巴集团控股有限公司 | 构建索引的方法及设备 |
CN108038188A (zh) * | 2017-12-11 | 2018-05-15 | 中国银行股份有限公司 | 一种文件处理方法及装置 |
CN110867179A (zh) * | 2019-11-12 | 2020-03-06 | 云南电网有限责任公司德宏供电局 | 基于语音识别、IKAnalyzer分词和hdfs的文件存储及检索方法和系统 |
CN111026827A (zh) * | 2019-12-06 | 2020-04-17 | 北京地拓科技发展有限公司 | 一种土壤侵蚀因子的数据服务方法、装置和电子设备 |
WO2022016865A1 (zh) * | 2020-07-24 | 2022-01-27 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、系统、设备以及介质 |
CN112232903A (zh) * | 2020-09-27 | 2021-01-15 | 北京五八信息技术有限公司 | 一种业务对象的展示方法和装置 |
CN112232903B (zh) * | 2020-09-27 | 2022-01-11 | 北京五八信息技术有限公司 | 一种业务对象的展示方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250409A (zh) | 数据查询方法及装置 | |
KR101700340B1 (ko) | 대용량 데이터의 클러스터 결과 분석 시스템 및 방법 | |
CN105701096A (zh) | 索引生成方法、数据查询方法、装置及系统 | |
CN101546342A (zh) | 实现搜索服务的方法与系统 | |
US20130325847A1 (en) | Graph-based searching | |
US20130006996A1 (en) | Clustering E-Mails Using Collaborative Information | |
CN104679778A (zh) | 一种搜索结果的生成方法及装置 | |
CN104731896A (zh) | 一种数据处理方法及系统 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN102541912A (zh) | 一种网络文章传播影响力的评价系统及方法 | |
JP2018170036A (ja) | ファイル共有ネットワークにおけるスニペット照合 | |
CN106294683A (zh) | 一种文件拆分方法及装置 | |
CN112506925A (zh) | 一种基于区块链的数据检索系统及方法 | |
US9251357B2 (en) | Scalable precomputation system for host-opaque processing of encrypted databases | |
CN105373746B (zh) | 一种分布式数据处理方法和装置 | |
CN106294785A (zh) | 内容筛选方法以及系统 | |
CN109947759A (zh) | 一种数据索引建立方法、索引检索方法及装置 | |
JP5324677B2 (ja) | 類似文書検索支援装置及び類似文書検索支援プログラム | |
CN104424316A (zh) | 一种数据存储方法、数据查询方法、相关装置和系统 | |
CN112199463A (zh) | 数据查询方法、装置及设备 | |
Vidya et al. | Web mining-concepts and application | |
CN108228101B (zh) | 一种管理数据的方法和系统 | |
US20050216449A1 (en) | System for obtaining, managing and providing retrieved content and a system thereof | |
Rochmadi et al. | Digital evidence identification of Android device using live forensics acquisition on cloud storage (iDrive) | |
CN104915408B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |