CN106919626B - 数据处理方法和装置以及数据查询方法和装置 - Google Patents
数据处理方法和装置以及数据查询方法和装置 Download PDFInfo
- Publication number
- CN106919626B CN106919626B CN201511001307.4A CN201511001307A CN106919626B CN 106919626 B CN106919626 B CN 106919626B CN 201511001307 A CN201511001307 A CN 201511001307A CN 106919626 B CN106919626 B CN 106919626B
- Authority
- CN
- China
- Prior art keywords
- text
- target
- texts
- time
- field
- 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.)
- Active
Links
Images
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法和装置以及数据查询方法和装置。其中,该数据处理方法包括:从用于存储文本数据的服务器中确定出多个目标文本,其中,多个目标文本所记录的文本内容相同;从多个目标文本中确定出预设文本,其中,预设文本为多个目标文本中的任意一个文本;对预设文本添加预设标识,以使得在服务器中利用所述预设标识查询文本数据。本申请解决了现有技术在查询文本的查询结果中包含大量的内容重复的文本的技术问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据处理方法和装置以及数据查询方法和装置。
背景技术
搜索服务器在收录文本的过程中,往往会从不同的网站搜集相应的文本,不同的网站上会发布相同的内容,这使得搜索服务器收录的文本存在大量重复。搜索服务器的种类可以有很多,例如ElasticSearch,它是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎。
对于这些搜索服务器,由于其收录了大量重复的文本,使得在查询文本的查询结果中包含大量的内容重复的文本,此时,分析人员需要再对查询结果中重复的文本进行去重处理,降低了数据分析的效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据处理方法和装置以及数据查询方法和装置,以至少解决现有技术在查询文本的查询结果中包含大量的内容重复的文本的技术问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:从用于存储文本数据的服务器中确定出多个目标文本,其中,所述多个目标文本所记录的文本内容相同;从所述多个目标文本中确定出预设文本,其中,所述预设文本为所述多个目标文本中的任意一个文本;对所述预设文本添加预设标识,以使得在服务器中利用所述预设标识查询文本数据。
进一步地,所述多个目标文本为m个,m为大于或者等于2的自然数,其中,从所述多个目标文本中确定出预设文本包括:将所述多个目标文本按照所述多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将所述第1个目标文本作为所述预设文本,其中,所述第二字段用于记录对应的目标文本的发布时间;对所述预设文本添加预设标识包括:将第1个目标文本对应的第一字段的值设置为第一预设时间,将所述第一预设时间作为所述预设标识;在对所述预设文本添加预设标识之后,所述方法还包括:将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间,其中,i依次取1至m-1。
进一步地,在将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间之前,所述方法还包括:判断所述第i个目标文本对应的第一字段记录的时间是否小于所述第i个目标文本对应的第二字段记录的时间;将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间包括:在判断出所述第i个目标文本对应的第一字段记录的时间小于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第二字段记录的时间;其中,在判断出所述第i个目标文本对应的第一字段记录的时间大于或者等于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第一字段记录的时间与第二预设时间之和,其中,所述第二预设时间小于所述第一字段和所述第二字段记录的最小时间单位。
进一步地,在从用于存储文本数据的服务器中确定出多个目标文本之前,所述方法还包括:对所述服务器中文本内容相同的一组文本中每个文本添加相同的标签,其中,不同文本内容的文本对应的标签不同;从用于存储文本数据的服务器中确定出多个目标文本包括:利用所述标签从所述服务器中确定出所述多个目标文本。
根据本申请实施例的又一个方面,提供了一种数据查询方法,包括:接收查询请求,其中,所述查询请求中携带有第一查询条件;生成第二查询条件,其中,所述第二查询条件中包含预设标识;利用所述第二查询条件从用于存储文本数据的服务器中查询出满足所述第二查询条件的文本;以及利用所述第一查询条件从满足所述第二查询条件的文本中进行查询,得到查询结果。
根据本申请实施例的又一个方面,还提供了一种数据处理装置,包括:第一确定单元,用于从用于存储文本数据的服务器中确定出多个目标文本,其中,所述多个目标文本所记录的文本内容相同;第二确定单元,用于从所述多个目标文本中确定出预设文本,其中,所述预设文本为所述多个目标文本中的任意一个文本;以及第一添加单元,用于对所述预设文本添加预设标识。
进一步地,所述多个目标文本为m个,m为大于或者等于2的自然数,其中,所述第二确定单元包括:排序模块,用于将所述多个目标文本按照所述多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将第1个目标文本作为所述预设文本,其中,所述第二字段用于记录对应的目标文本的发布时间;所述第一添加单元包括:设置模块,用于将第1个目标文本对应的第一字段的值设置为第一预设时间,将所述第一预设时间作为所述预设标识;其中,所述装置还包括:第一设置单元,用于在对所述多个目标文本中的一个预设文本添加预设标识之后,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间,其中,i依次取1至m-1。
进一步地,所述装置还包括:判断单元,用于在将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间之前,判断所述第i个目标文本对应的第一字段记录的时间是否小于所述第i个目标文本对应的第二字段记录的时间;所述第一设置单元具体用于在判断出所述第i个目标文本对应的第一字段记录的时间小于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第二字段记录的时间;其中,所述装置还包括:第二设置单元,用于在判断出所述第i个目标文本对应的第一字段记录的时间大于或者等于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第一字段记录的时间与第二预设时间之和,其中,所述第二预设时间小于所述第一字段和所述第二字段记录的最小时间单位。
进一步地,所述装置还包括:第二添加单元,用于在从用于存储文本数据的服务器中确定出多个目标文本之前,对所述服务器中文本内容相同的一组文本中每个文本添加相同的标签,其中,不同文本内容的文本对应的标签不同;所述第一确定单元具体用于利用所述标签从所述服务器中确定出所述多个目标文本。
根据本申请实施例的又一个方面,还提供了一种数据查询装置,包括:接收单元,用于接收查询请求,其中,所述查询请求中携带有第一查询条件;生成单元,用于生成第二查询条件,其中,所述第二查询条件中包含预设标识;第一查询单元,用于利用所述第二查询条件从用于存储文本数据的服务器中查询出满足所述第二查询条件的文本;以及第二查询单元,用于利用所述第一查询条件从满足所述第二查询条件的文本中进行查询,得到查询结果。
在本申请实施例中,从用于存储文本数据的服务器中确定出多个目标文本,其中,多个目标文本所记录的文本内容相同;从多个目标文本中确定出预设文本,其中,预设文本为多个目标文本中的任意一个文本;对预设文本添加预设标识。通过对每组重复文本中的某一个文本添加标识,使得在查询时可以根据此标识查询出每组重复文本中添加了标识的那一个文本,使得查询结果中不包含内容重复的文本,进而解决了现有技术在查询文本的查询结果中包含大量的内容重复的文本的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据处理方法的流程图;
图2是根据本申请实施例的时间链的示意图;
图3是根据本申请优选实施例的数据处理方法的流程图;
图4是根据本申请实施例的数据查询方法的流程图;
图5是根据本申请实施例的数据处理装置的示意图;以及
图6是根据本申请实施例的数据查询装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的数据处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,从用于存储文本数据的服务器中确定出多个目标文本,其中,多个目标文本所记录的文本内容相同。
步骤S104,从所述多个目标文本中确定出预设文本,其中,所述预设文本为所述多个目标文本中的任意一个文本。
步骤S106,对预设文本添加预设标识,以使得在服务器中利用所述预设标识查询文本数据。
存储文本数据的服务器可以是ElasticSearch。文本可以是文章。
文本内容相同指的是文本的内容完全相同,或者文本内容的相似度满足一定的条件。将服务器中存储的内容相同的文本划分为一组,称为一组重复文本。
在每一组重复文本中,选择一个文本作为预设文本。由于一组重复文本中的文本的内容相同,因此预设文本可以是该组重复文本中的任意一个文本。对预设文本添加预设标识。预设标识可以为时间、数字等标识。
在需要进行查询时,设置查询条件中包含预设标识,即可筛选出每组文本中的添加了标识的那一个文本,然后对筛选出的添加了标识的文本进行下一步查询。
通过对每组重复文本中的某一个文本添加标识,使得在查询时可以根据此标识查询出每组重复文本中添加了标识的那一个文本,使得查询结果中不包含内容重复的文本,进而解决了现有技术在查询文本的查询结果中包含大量的内容重复的文本的技术问题。
可选地,多个目标文本为m个,m为大于或者等于2的自然数,其中,从所述多个目标文本中确定出预设文本包括:将多个目标文本按照多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将所述第1个目标文本作为所述预设文本,其中,第二字段用于记录对应的目标文本的发布时间。对所述预设文本添加预设标识包括:将第1个目标文本对应的第一字段的值设置为第一预设时间,将第一预设时间作为预设标识。在对所述预设文本添加预设标识之后,本申请实施例所提供的数据处理方法还包括:将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间,其中,i依次取1至m-1。
第二字段可以是文本的发布时间,也可以是其他时间信息,在本申请实施例中,以文本的发布时间作为第二字段为例进行详细说明。
有一组重复文本,这组重复文本中包含m个文本。这m个文本中,每个文本都对应着记录该文本发布时间的一个字段(即前文中提到的第二字段)。将这m个文本按照第二字段中记录的文本的发布时间进行升序排列,得到第1个文本、第2个文本、……第m个文本。其中,前一个文本的发布时间早于后一个文本的发布时间。将m个文本添加对应的第一字段,将第1个文本的第一字段的值设置为第一预设时间,第一预设时间为一个预先设置好的时间。从第2个文本开始,将前一个文本的第二字段记录的时间的值赋给当前文本的第一字段,即将第1个文本的第二字段记录的时间作为第2个文本的第一字段的值,将第2个文本的第二字段记录的时间作为第3个文本的第一字段的值,……,将第i个文本的第二字段记录的时间作为第i+1个文本的第一字段的值,……,将第m-1个文本的第二字段记录的时间作为第m个文本的第一字段的值。
图2是根据本申请实施例的时间链的示意图。
图2示出了3组重复文本按照第一字段记录的时间进行升序排序后,类似于链表的一种结构,将这种结构称为时间链。其中,DocR1、DocR2和DocR3是一组重复文本,DocM1和DocM2是一组重复文本,DocN1是一组重复文本。
当需要在所有文本中查询时,只需要在正常的查询中增加一个RangeFilter,限制第一字段的值,即可查询出每条时间链最左侧的文本。
当需要在一定的时间范围[T1,T2)内查询时,只需要增加一个RangeFilter,限制第二字段在时间范围[T1,T2)内,且第一字段的值小于T1,即可查询出时间链位于时间范围[T1,T2)内的部分最左侧的文本。
表1示出了编号为1至5的5个重复的文本与其对应的第二字段。
如表1所示,这组重复的文本包括5个文本,这5个文本对应的第二字段用IndexTime表示,按照5个文本对应的IndexTime的值从小到大进行排序后,得到的文本的排列顺序如表1所示。
表1
使用LastAppearTime表示这5个文本对应的第一字段。IndexTime和LastAppearTime的类型都为日期。
假设设置第一预设时间为0001-01-01 T 00:00:00,则编号为1的文本的LastAppearTime的值为0001-01-01 T 00:00:00。
将编号为1的文本的IndexTime的值作为编号为2的文本的LastAppearTime的值。
将编号为2的文本的IndexTime的值作为编号为3的文本的LastAppearTime的值。
将编号为3的文本的IndexTime的值作为编号为4的文本的LastAppearTime的值。
将编号为4的文本的IndexTime的值作为编号为5的文本的LastAppearTime的值。
表2示出了编号为1至5的5个重复的文本与其对应的第二字段和第一字段。
表2
文本的编号 | IndexTime | LastAppearTime |
1 | 2015-03-01 T 10:00:00 | 0001-01-01 T 00:00:00 |
2 | 2015-03-01 T 11:00:00 | 2015-03-01 T 10:00:00 |
3 | 2015-03-01 T 12:00:00 | 2015-03-01 T 11:00:00 |
4 | 2015-03-01 T 13:00:00 | 2015-03-01 T 12:00:00 |
5 | 2015-03-01 T 14:00:00 | 2015-03-01 T 13:00:00 |
在根据表2进行查询时,有两种情况。
第一种情况,在所有的文本中查询,即,不限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出LastAppearTime的值为0001-01-01 T 00:00:00的文本。即,从每组重复文本中,找出LastAppearTime的值为0001-01-01 T 00:00:00的一个文本,即找到每条时间链最左侧的文本。这样,接下来就可以对LastAppearTime的值为0001-01-01 T 00:00:00的文本进行下一步查询操作。
第二种情况,在一定的时间区间[start,end)进行查询,即,限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本。这样,接下来就可以对IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本进行下一步查询操作。
例如,假设start的值为2015-03-01 T 11:30:00,end的值为2015-03-01 T 13:30:00。通过根据IndexTime的值进行筛选,发现编号为3和编号为4的文本的IndexTime的值在[start,end)范围之内。
下一步判断IndexTime的值在[start,end)范围之内的文本中,哪个文本的LastAppearTime的值小于start的值,即判断在编号为3和编号为4的两个文本中,哪个文本的LastAppearTime的值小于2015-03-01 T 11:30:00。经过判断,发现编号为3的文本的LastAppearTime的值小于2015-03-01 T 11:30:00。因此在时间区间[2015-03-01 T 11:30:00,2015-03-01 T 13:30:00)进行查询时,得到编号为3的文本。
可选地,在将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间之前,本申请实施例所提供的数据处理方法还包括:判断第i个目标文本对应的第一字段记录的时间是否小于第i个目标文本对应的第二字段记录的时间。将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间包括:在判断出第i个目标文本对应的第一字段记录的时间小于第i个目标文本对应的第二字段记录的时间的情况下,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间。其中,在判断出第i个目标文本对应的第一字段记录的时间大于或者等于第i个目标文本对应的第二字段记录的时间的情况下,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第一字段记录的时间与第二预设时间之和,其中,第二预设时间小于第一字段和第二字段记录的最小时间单位。
有一组重复文本,这组重复文本中包含m个文本。这m个文本中,每个文本都对应着记录该文本发布时间的一个字段(即前文中提到的第二字段)。将这m个文本按照第二字段中记录的文本的发布时间进行升序排列,得到第1个文本、第2个文本、……第m个文本。其中,前一个文本的发布时间早于后一个文本的发布时间。将m个文本添加对应的第一字段,将第1个文本的第一字段的值设置为第一预设时间,第一预设时间为一个预先设置好的时间。
从第2个文本开始,判断前一个文本的第一字段记录的时间是否小于第二字段记录的时间。如果判断出前一个文本的第一字段记录的时间小于第二字段记录的时间,则将前一个文本第二字段记录的时间的值赋给当前文本的第一字段,也可以说,设置当前文本的第一字段的值为前一个文本第二字段记录的时间。
如果判断出前一个文本的第一字段记录的时间大于或者等于第二字段记录的时间,则将前一个文本的第一字段记录的时间与一个很小的时间段(即上述第二预设时间)相加,得到的值作为当前文本的第一字段的值。需要注意的是,第二预设时间是一个非常小的值,远远小于第一字段和第二字段记录的时间的最小单位。例如,假如,第一字段和第二字段记录的时间的最小单位为秒,则第二预设时间可以为0.0001秒、0.00001秒,或者0.000001秒,等等。
表3示出了文本DocA1至文本DocA9这9个重复的文本与其对应的第二字段。
表3
文本 | IndexTime |
DocA1 | 2015-03-01 T 10:00:00 |
DocA2 | 2015-03-01 T 11:00:00 |
DocA3 | 2015-03-01 T 12:00:00 |
DocA4 | 2015-03-01 T 12:00:00 |
DocA5 | 2015-03-01 T 12:00:00 |
DocA6 | 2015-03-01 T 12:00:00 |
DocA7 | 2015-03-01 T 12:00:00 |
DocA8 | 2015-03-01 T 12:00:10 |
DocA9 | 2015-03-01 T 12:00:10 |
如表3所示,文本DocA1、文本DocA2、……、文本DocA9这9个文本为一组重复文本。使用IndexTime来表示第二字段,即表示这9个文本发布的时间,IndexTime的值是已知的。
第二预设时间有多种取值方法,例如,在本实施例中,设置第二预设时间为0.0001秒。
使用LastAppearTime表示文本的第一字段,LastAppearTime的值是未知的。
设置第一预设时间为1000-01-01 T 00:00:00:0000,将第一预设时间的值赋给文本DocA1的第一字段,即设置文本DocA1的LastAppearTime的值为1000-01-01 T 00:00:00:0000。第一预设时间可以有多种取值,不局限于以上列出的取值。
由于文本DocA1的LastAppearTime小于IndexTime的值,因此,将文本DocA1的IndexTime的值赋给文本DocA2的LastAppearTime,即设置文本DocA2的LastAppearTime的值为2015-03-01 T 10:00:00:0000。
由于文本DocA2的LastAppearTime的值小于IndexTime的值,因此,将文本DocA2的IndexTime的值赋给文本DocA3的LastAppearTime,即设置文本DocA3的LastAppearTime的值为2015-03-01 T 11:00:00:0000。
由于文本DocA3的LastAppearTime的值小于IndexTime的值,因此,将文本DocA3的IndexTime的值赋给文本DocA4的LastAppearTime,即设置文本DocA4的LastAppearTime的值为2015-03-01 T 12:00:00:0000。
由于文本DocA4的LastAppearTime的值等于IndexTime的值,因此,将文本DocA4的LastAppearTime的值与第二预设时间的和赋给文本DocA5的LastAppearTime,即设置文本DocA5的LastAppearTime的值为2015-03-01 T 12:00:00:0001。
由于文本DocA5的LastAppearTime的值大于IndexTime的值,因此,将文本DocA5的LastAppearTime的值与第二预设时间的和赋给文本DocA6的LastAppearTime,即设置文本DocA6的LastAppearTime的值为2015-03-01 T 12:00:00:0002。
由于文本DocA6的LastAppearTime的值大于IndexTime的值,因此,将文本DocA6的LastAppearTime的值与第二预设时间的和赋给文本DocA7的LastAppearTime,即设置文本DocA7的LastAppearTime的值为2015-03-01 T 12:00:00:0003。
由于文本DocA7的LastAppearTime的值大于IndexTime的值,因此,将文本DocA7的LastAppearTime的值与第二预设时间的和赋给文本DocA8的LastAppearTime,即设置文本DocA8的LastAppearTime的值为2015-03-01 T 12:00:00:0004。
由于文本DocA8的LastAppearTime的值小于IndexTime的值,因此,将文本DocA8的IndexTime的值赋给文本DocA9的LastAppearTime,即设置文本DocA9的LastAppearTime的值为2015-03-01 T 12:00:01:0000。
表4示出了文本DocA1至文本DocA9这9个重复的文本与其对应的第二字段和第一字段。
表4
文本 | IndexTime | LastAppearTime |
DocA1 | 2015-03-01 T 10:00:00 | 1000-01-01 T 00:00:00:0000 |
DocA2 | 2015-03-01 T 11:00:00 | 2015-03-01 T 10:00:00:0000 |
DocA3 | 2015-03-01 T 12:00:00 | 2015-03-01 T 11:00:00:0000 |
DocA4 | 2015-03-01 T 12:00:00 | 2015-03-01 T 12:00:00:0000 |
DocA5 | 2015-03-01 T 12:00:00 | 2015-03-01 T 12:00:00:0001 |
DocA6 | 2015-03-01 T 12:00:00 | 2015-03-01 T 12:00:00:0002 |
DocA7 | 2015-03-01 T 12:00:00 | 2015-03-01 T 12:00:00:0003 |
DocA8 | 2015-03-01 T 12:00:01 | 2015-03-01 T 12:00:00:0004 |
DocA9 | 2015-03-01 T 12:00:01 | 2015-03-01 T 12:00:01:0000 |
在根据表4进行查询时,有两种情况。
第一种情况,在所有的文本中查询,即,不限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出LastAppearTime的值为1000-01-01 T 00:00:00:0000的文本。即,从每组重复文本中,找出LastAppearTime的值为1000-01-01 T 00:00:00:0000的一个文本,即找到每条时间链最左侧的文本。这样,接下来就可以对LastAppearTime的值为1000-01-01 T 00:00:00:0000的文本进行下一步查询操作。
第二种情况,在一定的时间区间[start,end)进行查询,即,限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本。这样,接下来就可以对IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本进行下一步查询操作。
例如,假设start的值为2015-03-01 T 11:40:00,end的值为2015-03-01 T 12:20:00。通过根据IndexTime筛选,发现文本DocA3至文本DocA9的IndexTime的值都在[start,end)之间,接下来,查找文本DocA3至文本DocA9中LastAppearTime的值小于start的文本,只有文本DocA3满足要求。因此,这9个重复文本中,只有文本DocA3被筛选出来,以供下一步查询使用。
在重复文本的IndexTime的值相等的情况下,通过将LastAppearTime的值进行微调放大,可以保证LastAppearTime的值的唯一性,使得在查询过程中,即使有多个重复文本的IndexTime的值相等,也可以保证在一组重复文本中只筛选出一个满足查询条件的文本。
在从用于存储文本数据的服务器中确定出多个目标文本之前,本申请实施例所提供的数据处理方法还包括:对服务器中文本内容相同的一组文本中每个文本添加相同的标签,其中,不同文本内容的文本对应的标签不同;从用于存储文本数据的服务器中确定出多个目标文本包括:利用标签从服务器中确定出多个目标文本。
为了便于查询具体哪些文本重复,可以为每一个文本添加一个标签repeatID,使得同一组的文本中,每个文本的repeatID相同,不同组的文本的repeatID不同。也就是说,repeatID相同的文本的内容是重复的,repeatID不同的文本的内容不重复。repeatID可以采用全球唯一标识符GUID(Globally Unique Identifier)来保证唯一性。
这样,可以根据repeatID,确定出同一个文本内容的重复文本有哪些,可以进一步地确定出文本的来源、转载量等信息。
图3是根据本申请优选实施例的数据处理方法的流程图。如图3所示,该方法包括如下步骤:
步骤S202,取一组重复的文章,这组重复的文章的数量为m个。这组重复的文章即为上述目标文本。步骤S202的具体实施方式与上述步骤S102相同。
步骤S204,将这组重复的文章按照文章对应的第二字段的值升序排序,得到第1至第m个文章。在本实施例中,IndexTime为第二字段。IndexTime是文章的发布时间,是已知量。
步骤S206,将“0001-01-01 T 00:00:00”赋给第1个文章的第一字段。在本实施例中,LastAppearTime为上述第一字段。第1个文章即为上述预设文本。“0001-01-01 T 00:00:00”即为上述预设标识。步骤S206的具体实施方式与上述步骤S104和上述步骤S106相同。
步骤S208,设置i的值为1。
步骤S210,判断i是否小于m。如果判断出i小于m,执行步骤S212;如果判断出i大于或者等于m,结束该数据处理方法的流程。
步骤S212,判断第i-1个文章的第一字段的值是否小于第i-1个文章的第二字段的值。如果判断出第i-1个文章的第一字段的值小于第i-1个文章的第二字段的值,执行步骤S214;如果判断出第i-1个文章的第一字段的值大于或者等于第i-1个文章的第二字段的值,执行步骤S216。
步骤S214,将第i-1个文章的第二字段的值赋给第i个文章的第一字段。即,将第i-1个文章的IndexTime的值赋给第i个文章的LastAppearTime。
步骤S216,将第i-1个文章的第一字段的值与t1的和赋给第i个文章的第一字段。即,将第i-1个文章的LastAppearTime的值与t1的和赋给第i个文章的LastAppearTime。t1即为上述第二预设时间,t1远远小于IndexTime和LastAppearTime所记录的时间的最小单位。
步骤S218,将i+1的值赋给i。
通过对每组重复文章中的某一个文章添加标识,使得在查询时可以根据此标识查询出每组重复文章中添加了标识的那一个文章,使得查询结果中不包含内容重复的文章,进而解决了现有技术在查询文章的查询结果中包含大量的内容重复的文章的技术问题。
并且,由于在查询过程中就已经筛选出互不相同的文章,将这些互不相同的文章作为下一步常规查询的范围,从而大大减小了查询的工作量,加快了查询速度,提高了查询效率。
并且,使用本申请实施例所提供的数据处理方法,无需另存一份互不相同的文章以便在这些文章中进行查询,不额外占用存储空间,节约了存储空间,同时也节省了用于维护数据的开销。
本申请实施例还提供了一种数据查询方法,使用本申请实施例所提供的数据处理方法对数据进行处理之后,就可以使用该数据查询方法对数据进行查询。
图4是根据本申请实施例的数据查询方法的流程图,如图4所示,该方法包括如下步骤:
步骤S302,接收查询请求,其中,查询请求中携带有第一查询条件。
步骤S304,生成第二查询条件,其中,第二查询条件中包含预设标识。
步骤S306,利用第二查询条件从用于存储文本数据的服务器中查询出满足第二查询条件的文本。
步骤S308,利用第一查询条件从满足第二查询条件的文本中进行查询,得到查询结果。
查询请求是用户输入的,第一查询条件为常规查询条件,例如,使用关键词“圣诞节”、“游玩”等对文本进行查询。
第二查询条件用于第一查询条件之前,第二查询条件的作用为对重复文本进行去重操作,即,使用第二查询条件之后,能够得到一组重复文本中的某一个文本。
设置第二查询条件中包含预设标识,此预设标识与重复文本中的预设标识相同。由于一组重复文本中有一个文本是添加了预设标识,故使用第二查询条件,能够筛选出每一组重复文本中添加了预设标识的一个文本,这些添加了预设标识的文本即为满足第二查询条件的文本。
之后,利用第一查询条件从满足第二查询条件的文本中进行查询,得到查询结果。
例如,服务器一共存储了10000个文本,将这10000个文本进行分组,将重复的文本划分成一组,得到了2000组文本,每一组文本中,有一个文本具有预设标识。
用户输入查询请求,该查询请求中携带有第一查询条件,第一查询条件为根据用户的输入的关键词“春节”进行查询。
在使用第一查询条件进行查询之前,设置第二查询条件。设置第二查询条件包含预设标识,使用第二查询条件对服务器存储的10000个文本进行查询,筛选出2000个文本,这2000个文本都具有预设标识,且这2000个文本为互不重复的文本。接下来,使用第一查询条件对2000个互不重复的文本进行查询,即在2000个互不重复的文本中,筛选出关键词标签为“春节”的关键词。
通过在常规查询之前,添加一个查询条件,使用该查询条件从每一组重复的文本里筛选出一个文本,从而筛选出互不相同的文本,将这些互不相同的文本作为下一步查询的范围,从而大大减小了查询的工作量,加快了查询速度,提高了查询效率,而且,由于无需对互不相同的文本进行额外存储并维护,不额外占用存储空间,节约了存储空间,同时也节省了用于维护数据的开销。
根据本申请实施例,还提供了一种数据处理装置。该数据处理装置可以执行上述数据处理方法,上述数据处理方法也可以通过该数据处理装置实施。
图5是根据本申请实施例的数据处理装置的示意图。如图5所示,该装置包括第一确定单元50、第二确定单元52和第一添加单元54。
第一确定单元50用于从用于存储文本数据的服务器中确定出多个目标文本,其中,多个目标文本所记录的文本内容相同。
第二确定单元52用于从所述多个目标文本中确定出预设文本,其中,所述预设文本为所述多个目标文本中的任意一个文本。
第一添加单元54用于对预设文本添加预设标识,以使得在服务器中利用所述预设标识查询文本数据。
存储文本数据的服务器可以是ElasticSearch。文本可以是文章。
文本内容相同指的是文本的内容完全相同,或者文本内容的相似度满足一定的条件。将服务器中存储的内容相同的文本划分为一组,称为一组重复文本。
在每一组重复文本中,选择一个文本作为预设文本。由于一组重复文本中的文本的内容相同,因此预设文本可以是该组重复文本中的任意一个文本。对预设文本添加预设标识。预设标识可以为时间、数字等标识。
在需要进行查询时,设置查询条件中包含预设标识,即可筛选出每组文本中的添加了标识的那一个文本,然后对筛选出的添加了标识的文本进行下一步查询。
通过对每组重复文本中的某一个文本添加标识,使得在查询时可以根据此标识查询出每组重复文本中添加了标识的那一个文本,使得查询结果中不包含内容重复的文本,进而解决了现有技术在查询文本的查询结果中包含大量的内容重复的文本的技术问题。
可选地,多个目标文本为m个,m为大于或者等于2的自然数,其中,第二确定单元52包括排序模块。排序模块用于将多个目标文本按照多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将第1个目标文本作为所述预设文本,其中,第二字段用于记录对应的目标文本的发布时间。第一添加单元54包括设置模块。设置模块用于将第1个目标文本对应的第一字段的值设置为第一预设时间,将第一预设时间作为预设标识。其中,本申请实施例所提供的数据处理装置还包括第一设置单元。第一设置单元用于在对多个目标文本中的一个预设文本添加预设标识之后,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间,其中,i依次取1至m-1。
第二字段可以是文本的发布时间,也可以是其他时间信息,在本申请实施例中,以文本的发布时间作为第二字段为例进行详细说明。
有一组重复文本,这组重复文本中包含m个文本。这m个文本中,每个文本都对应着记录该文本发布时间的一个字段(即前文中提到的第二字段)。将这m个文本按照第二字段中记录的文本的发布时间进行升序排列,得到第1个文本、第2个文本、……第m个文本。其中,前一个文本的发布时间早于后一个文本的发布时间。将m个文本添加对应的第一字段,将第1个文本的第一字段的值设置为第一预设时间,第一预设时间为一个预先设置好的时间。从第2个文本开始,将前一个文本的第二字段记录的时间的值赋给当前文本的第一字段,即将第1个文本的第二字段记录的时间作为第2个文本的第一字段的值,将第2个文本的第二字段记录的时间作为第3个文本的第一字段的值,……,将第i个文本的第二字段记录的时间作为第i+1个文本的第一字段的值,……,将第m-1个文本的第二字段记录的时间作为第m个文本的第一字段的值。
图2是根据本申请实施例的时间链的示意图。
图2示出了3组重复文本按照第一字段记录的时间进行升序排序后,类似于链表的一种结构,将这种结构称为时间链。其中,DocR1、DocR2和DocR3是一组重复文本,DocM1和DocM2是一组重复文本,DocN1是一组重复文本。
当需要在所有文本中查询时,只需要在正常的查询中增加一个RangeFilter,限制第一字段的值,即可查询出每条时间链最左侧的文本。
当需要在一定的时间范围[T1,T2)内查询时,只需要增加一个RangeFilter,限制第二字段在时间范围[T1,T2)内,且第一字段的值小于T1,即可查询出时间链位于时间范围[T1,T2)内的部分最左侧的文本。
表1示出了编号为1至5的5个重复的文本与其对应的第二字段。
如表1所示,这组重复的文本包括5个文本,这5个文本对应的第二字段用IndexTime表示,按照5个文本对应的IndexTime的值从小到大进行排序后,得到的文本的排列顺序如表1所示。
使用LastAppearTime表示这5个文本对应的第一字段。IndexTime和LastAppearTime的类型都为日期。
假设设置第一预设时间为0001-01-01 T 00:00:00,则编号为1的文本的LastAppearTime的值为0001-01-01 T 00:00:00。
将编号为1的文本的IndexTime的值作为编号为2的文本的LastAppearTime的值。
将编号为2的文本的IndexTime的值作为编号为3的文本的LastAppearTime的值。
将编号为3的文本的IndexTime的值作为编号为4的文本的LastAppearTime的值。
将编号为4的文本的IndexTime的值作为编号为5的文本的LastAppearTime的值。
表2示出了编号为1至5的5个重复的文本与其对应的第二字段和第一字段。
在根据表2进行查询时,有两种情况。
第一种情况,在所有的文本中查询,即,不限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出LastAppearTime的值为0001-01-01 T 00:00:00的文本。即,从每组重复文本中,找出LastAppearTime的值为0001-01-01 T 00:00:00的一个文本,即找到每条时间链最左侧的文本。这样,接下来就可以对LastAppearTime的值为0001-01-01 T 00:00:00的文本进行下一步查询操作。
第二种情况,在一定的时间区间[start,end)进行查询,即,限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本。这样,接下来就可以对IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本进行下一步查询操作。
例如,假设start的值为2015-03-01 T 11:30:00,end的值为2015-03-01 T 13:30:00。通过根据IndexTime的值进行筛选,发现编号为3和编号为4的文本的IndexTime的值在[start,end)范围之内。
下一步判断IndexTime的值在[start,end)范围之内的文本中,哪个文本的LastAppearTime的值小于start的值,即判断在编号为3和编号为4的两个文本中,哪个文本的LastAppearTime的值小于2015-03-01 T 11:30:00。经过判断,发现编号为3的文本的LastAppearTime的值小于2015-03-01 T 11:30:00。因此在时间区间[2015-03-01 T 11:30:00,2015-03-01 T 13:30:00)进行查询时,得到编号为3的文本。
可选地,本申请实施例所提供的数据处理装置还包括判断单元。判断单元用于在将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间之前,判断第i个目标文本对应的第一字段记录的时间是否小于第i个目标文本对应的第二字段记录的时间。第一设置单元具体用于在判断出第i个目标文本对应的第一字段记录的时间小于第i个目标文本对应的第二字段记录的时间的情况下,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间。其中,本申请实施例所提供的数据处理装置还包括第二设置单元。第二设置单元用于在判断出第i个目标文本对应的第一字段记录的时间大于或者等于第i个目标文本对应的第二字段记录的时间的情况下,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第一字段记录的时间与第二预设时间之和,其中,第二预设时间小于第一字段和第二字段记录的最小时间单位。
有一组重复文本,这组重复文本中包含m个文本。这m个文本中,每个文本都对应着记录该文本发布时间的一个字段(即前文中提到的第二字段)。将这m个文本按照第二字段中记录的文本的发布时间进行升序排列,得到第1个文本、第2个文本、……第m个文本。其中,前一个文本的发布时间早于后一个文本的发布时间。将m个文本添加对应的第一字段,将第1个文本的第一字段的值设置为第一预设时间,第一预设时间为一个预先设置好的时间。
从第2个文本开始,判断前一个文本的第一字段记录的时间是否小于第二字段记录的时间。如果判断出前一个文本的第一字段记录的时间小于第二字段记录的时间,则将前一个文本第二字段记录的时间的值赋给当前文本的第一字段,也可以说,设置当前文本的第一字段的值为前一个文本第二字段记录的时间。
如果判断出前一个文本的第一字段记录的时间大于或者等于第二字段记录的时间,则将前一个文本的第一字段记录的时间与一个很小的时间段(即上述第二预设时间)相加,得到的值作为当前文本的第一字段的值。需要注意的是,第二预设时间是一个非常小的值,远远小于第一字段和第二字段记录的时间的最小单位。例如,假如,第一字段和第二字段记录的时间的最小单位为秒,则第二预设时间可以为0.0001秒、0.00001秒,或者0.000001秒,等等。
表3示出了文本DocA1至文本DocA9这9个重复的文本与其对应的第二字段。
如表3所示,文本DocA1、文本DocA2、……、文本DocA9这9个文本为一组重复文本。使用IndexTime来表示第二字段,即表示这9个文本发布的时间,IndexTime的值是已知的。
第二预设时间有多种取值方法,例如,在本实施例中,设置第二预设时间为0.0001秒。
使用LastAppearTime表示文本的第一字段,LastAppearTime的值是未知的。
设置第一预设时间为1000-01-01 T 00:00:00:0000,将第一预设时间的值赋给文本DocA1的第一字段,即设置文本DocA1的LastAppearTime的值为1000-01-01 T 00:00:00:0000。第一预设时间可以有多种取值,不局限于以上列出的取值。
由于文本DocA1的LastAppearTime小于IndexTime的值,因此,将文本DocA1的IndexTime的值赋给文本DocA2的LastAppearTime,即设置文本DocA2的LastAppearTime的值为2015-03-01 T 10:00:00:0000。
由于文本DocA2的LastAppearTime的值小于IndexTime的值,因此,将文本DocA2的IndexTime的值赋给文本DocA3的LastAppearTime,即设置文本DocA3的LastAppearTime的值为2015-03-01 T 11:00:00:0000。
由于文本DocA3的LastAppearTime的值小于IndexTime的值,因此,将文本DocA3的IndexTime的值赋给文本DocA4的LastAppearTime,即设置文本DocA4的LastAppearTime的值为2015-03-01 T 12:00:00:0000。
由于文本DocA4的LastAppearTime的值等于IndexTime的值,因此,将文本DocA4的LastAppearTime的值与第二预设时间的和赋给文本DocA5的LastAppearTime,即设置文本DocA5的LastAppearTime的值为2015-03-01 T 12:00:00:0001。
由于文本DocA5的LastAppearTime的值大于IndexTime的值,因此,将文本DocA5的LastAppearTime的值与第二预设时间的和赋给文本DocA6的LastAppearTime,即设置文本DocA6的LastAppearTime的值为2015-03-01 T 12:00:00:0002。
由于文本DocA6的LastAppearTime的值大于IndexTime的值,因此,将文本DocA6的LastAppearTime的值与第二预设时间的和赋给文本DocA7的LastAppearTime,即设置文本DocA7的LastAppearTime的值为2015-03-01 T 12:00:00:0003。
由于文本DocA7的LastAppearTime的值大于IndexTime的值,因此,将文本DocA7的LastAppearTime的值与第二预设时间的和赋给文本DocA8的LastAppearTime,即设置文本DocA8的LastAppearTime的值为2015-03-01 T 12:00:00:0004。
由于文本DocA8的LastAppearTime的值小于IndexTime的值,因此,将文本DocA8的IndexTime的值赋给文本DocA9的LastAppearTime,即设置文本DocA9的LastAppearTime的值为2015-03-01 T 12:00:01:0000。
表4示出了文本DocA1至文本DocA9这9个重复的文本与其对应的第二字段和第一字段。
在根据表4进行查询时,有两种情况。
第一种情况,在所有的文本中查询,即,不限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出LastAppearTime的值为1000-01-01 T 00:00:00:0000的文本。即,从每组重复文本中,找出LastAppearTime的值为1000-01-01 T 00:00:00:0000的一个文本,即找到每条时间链最左侧的文本。这样,接下来就可以对LastAppearTime的值为1000-01-01 T 00:00:00:0000的文本进行下一步查询操作。
第二种情况,在一定的时间区间[start,end)进行查询,即,限定文本的IndexTime(第二字段)的值。此时,只需要在进行常规查询之前,添加一个查询条件,筛选出IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本。这样,接下来就可以对IndexTime的值位于时间区间[start,end)之内,且LastAppearTime的值小于start的文本进行下一步查询操作。
例如,假设start的值为2015-03-01 T 11:40:00,end的值为2015-03-01 T 12:20:00。通过根据IndexTime筛选,发现文本DocA3至文本DocA9的IndexTime的值都在[start,end)之间,接下来,查找文本DocA3至文本DocA9中LastAppearTime的值小于start的文本,只有文本DocA3满足要求。因此,这9个重复文本中,只有文本DocA3被筛选出来,以供下一步查询使用。
在重复文本的IndexTime的值相等的情况下,通过将LastAppearTime的值进行微调放大,可以保证LastAppearTime的值的唯一性,使得在查询过程中,即使有多个重复文本的IndexTime的值相等,也可以保证在一组重复文本中只筛选出一个满足查询条件的文本。
可选地,本申请实施例所提供的数据处理装置还包括第二添加单元。第二添加单元用于在从用于存储文本数据的服务器中确定出多个目标文本之前,对服务器中文本内容相同的一组文本中每个文本添加相同的标签,其中,不同文本内容的文本对应的标签不同。第一确定单元50具体用于利用标签从服务器中确定出多个目标文本。
为了便于查询具体哪些文本重复,可以为每一个文本添加一个标签repeatID,使得同一组的文本中,每个文本的repeatID相同,不同组的文本的repeatID不同。也就是说,repeatID相同的文本的内容是重复的,repeatID不同的文本的内容不重复。repeatID可以采用全球唯一标识符GUID(Globally Unique Identifier)来保证唯一性。
这样,可以根据repeatID,确定出同一个文本内容的重复文本有哪些,可以进一步地确定出文本的来源、转载量等信息。
本申请实施例还提供了一种数据查询装置,该数据查询装置能够执行上述数据查询方法,上述数据查询方法也可以通过该数据查询装置实施。
图6是根据本申请实施例的数据查询装置的示意图。如图6所示,该装置包括接收单元60、生成单元62、第一查询单元64和第二查询单元66。
接收单元60用于接收查询请求,其中,查询请求中携带有第一查询条件。
生成单元62用于生成第二查询条件,其中,第二查询条件中包含预设标识。
第一查询单元64用于利用第二查询条件从用于存储文本数据的服务器中查询出满足第二查询条件的文本。
第二查询单元66用于利用第一查询条件从满足第二查询条件的文本中进行查询,得到查询结果。
查询请求是用户输入的,第一查询条件为常规查询条件,例如,使用关键词“圣诞节”、“游玩”等对文本进行查询。
第二查询条件用于第一查询条件之前,第二查询条件的作用为对重复文本进行去重操作,即,使用第二查询条件之后,能够得到一组重复文本中的某一个文本。
设置第二查询条件中包含预设标识,此预设标识与重复文本中的预设标识相同。由于一组重复文本中有一个文本是添加了预设标识,故使用第二查询条件,能够筛选出每一组重复文本中添加了预设标识的一个文本,这些添加了预设标识的文本即为满足第二查询条件的文本。
之后,利用第一查询条件从满足第二查询条件的文本中进行查询,得到查询结果。
例如,服务器一共存储了10000个文本,将这10000个文本进行分组,将重复的文本划分成一组,得到了2000组文本,每一组文本中,有一个文本具有预设标识。
用户输入查询请求,该查询请求中携带有第一查询条件,第一查询条件为根据用户的输入的关键词“春节”进行查询。
在使用第一查询条件进行查询之前,设置第二查询条件。设置第二查询条件包含预设标识,使用第二查询条件对服务器存储的10000个文本进行查询,筛选出2000个文本,这2000个文本都具有预设标识,且这2000个文本为互不重复的文本。接下来,使用第一查询条件对2000个互不重复的文本进行查询,即在2000个互不重复的文本中,筛选出关键词标签为“春节”的关键词。
通过在常规查询之前,添加一个查询条件,使用该查询条件从每一组重复的文本里筛选出一个文本,从而筛选出互不相同的文本,将这些互不相同的文本作为下一步查询的范围,从而大大减小了查询的工作量,加快了查询速度,提高了查询效率,而且,由于无需对互不相同的文本进行额外存储并维护,不额外占用存储空间,节约了存储空间,同时也节省了用于维护数据的开销。
所述数据处理装置包括处理器和存储器,上述确定单元50、第二确定单元52和第一添加单元54等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来使得查询结果中不包含内容重复的文本。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:从用于存储文本数据的服务器中确定出多个目标文本,其中,多个目标文本所记录的文本内容相同;从多个目标文本中确定出预设文本,其中,预设文本为多个目标文本中的任意一个文本;对预设文本添加预设标识,以使得在服务器中利用所述预设标识查询文本数据。
所述数据查询装置包括处理器和存储器,上述接收单元60、生成单元62、第一查询单元64和第二查询单元66等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来使得查询结果中不包含内容重复的文本。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收查询请求,其中,查询请求中携带有第一查询条件;生成第二查询条件,其中,第二查询条件中包含预设标识;利用第二查询条件从用于存储文本数据的服务器中查询出满足第二查询条件的文本;以及利用第一查询条件从满足第二查询条件的文本中进行查询,得到查询结果。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
从用于存储文本数据的服务器中确定出多个目标文本,其中,所述多个目标文本所记录的文本内容相同;
从所述多个目标文本中确定出预设文本,其中,所述预设文本为所述多个目标文本中的任意一个文本;
对所述预设文本添加预设标识,以使得在服务器中利用所述预设标识查询文本数据;
其中,所述多个目标文本为m个,m为大于或者等于2的自然数,从所述多个目标文本中确定出预设文本包括:将所述多个目标文本按照所述多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将第1个目标文本作为所述预设文本,其中,所述第二字段用于记录对应的目标文本的发布时间;
对所述预设文本添加预设标识包括:将第1个目标文本对应的第一字段的值设置为第一预设时间,将所述第一预设时间作为所述预设标识。
2.根据权利要求1所述的方法,其特征在于,
在对所述预设文本添加预设标识之后,所述方法还包括:
将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间,其中,i依次取1至m-1。
3.根据权利要求2所述的方法,其特征在于,
在将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间之前,所述方法还包括:判断所述第i个目标文本对应的第一字段记录的时间是否小于所述第i个目标文本对应的第二字段记录的时间;
将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间包括:在判断出所述第i个目标文本对应的第一字段记录的时间小于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第二字段记录的时间;
其中,在判断出所述第i个目标文本对应的第一字段记录的时间大于或者等于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第一字段记录的时间与第二预设时间之和,其中,所述第二预设时间小于所述第一字段和所述第二字段记录的最小时间单位。
4.根据权利要求1所述的方法,其特征在于,
在从用于存储文本数据的服务器中确定出多个目标文本之前,所述方法还包括:对所述服务器中文本内容相同的一组文本中每个文本添加相同的标签,其中,不同文本内容的文本对应的标签不同;
从用于存储文本数据的服务器中确定出多个目标文本包括:利用所述标签从所述服务器中确定出所述多个目标文本。
5.一种数据查询方法,其特征在于,包括:
接收查询请求,其中,所述查询请求中携带有第一查询条件;
生成第二查询条件,其中,所述第二查询条件中包含预设标识;
利用所述第二查询条件从用于存储文本数据的服务器中查询出满足所述第二查询条件的文本;以及
利用所述第一查询条件从满足所述第二查询条件的文本中进行查询,得到查询结果;
其中,在利用所述第二查询条件从用于存储文本数据的服务器中查询出满足所述第二查询条件的文本之前,所述方法还包括:
将所述用于存储文本数据的服务器中的多个目标文本按照所述多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将第1个目标文本作为预设文本,其中,所述多个目标文本所记录的文本内容相同,所述第二字段用于记录对应的目标文本的发布时间;
将第1个目标文本对应的第一字段的值设置为第一预设时间,将所述第一预设时间作为所述预设标识。
6.一种数据处理装置,其特征在于,所述装置包括:
第一确定单元,用于从用于存储文本数据的服务器中确定出多个目标文本,其中,所述多个目标文本所记录的文本内容相同;
第二确定单元,用于从所述多个目标文本中确定出预设文本,其中,所述预设文本为所述多个目标文本中的任意一个文本;
第一添加单元,用于对所述预设文本添加预设标识;
其中,所述多个目标文本为m个,m为大于或者等于2的自然数,所述第二确定单元包括:排序模块,用于将所述多个目标文本按照所述多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将第1个目标文本作为所述预设文本,其中,所述第二字段用于记录对应的目标文本的发布时间;
所述第一添加单元包括:设置模块,用于将第1个目标文本对应的第一字段的值设置为第一预设时间,将所述第一预设时间作为所述预设标识。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一设置单元,用于在对所述多个目标文本中的一个预设文本添加预设标识之后,将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间,其中,i依次取1至m-1。
8.根据权利要求7所述的装置,其特征在于,
所述装置还包括:判断单元,用于在将第i+1个目标文本对应的第一字段的值设置为第i个目标文本对应的第二字段记录的时间之前,判断所述第i个目标文本对应的第一字段记录的时间是否小于所述第i个目标文本对应的第二字段记录的时间;
所述第一设置单元具体用于在判断出所述第i个目标文本对应的第一字段记录的时间小于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第二字段记录的时间;
其中,所述装置还包括:第二设置单元,用于在判断出所述第i个目标文本对应的第一字段记录的时间大于或者等于所述第i个目标文本对应的第二字段记录的时间的情况下,将所述第i+1个目标文本对应的第一字段的值设置为所述第i个目标文本对应的第一字段记录的时间与第二预设时间之和,其中,所述第二预设时间小于所述第一字段和所述第二字段记录的最小时间单位。
9.根据权利要求6所述的装置,其特征在于,
所述装置还包括:第二添加单元,用于在从用于存储文本数据的服务器中确定出多个目标文本之前,对所述服务器中文本内容相同的一组文本中每个文本添加相同的标签,其中,不同文本内容的文本对应的标签不同;
所述第一确定单元具体用于利用所述标签从所述服务器中确定出所述多个目标文本。
10.一种数据查询装置,其特征在于,包括:
接收单元,用于接收查询请求,其中,所述查询请求中携带有第一查询条件;
生成单元,用于生成第二查询条件,其中,所述第二查询条件中包含预设标识;
第一查询单元,用于利用所述第二查询条件从用于存储文本数据的服务器中查询出满足所述第二查询条件的文本;以及
第二查询单元,用于利用所述第一查询条件从满足所述第二查询条件的文本中进行查询,得到查询结果;
所述装置还用于在利用所述第二查询条件从用于存储文本数据的服务器中查询出满足所述第二查询条件的文本之前,将所述用于存储文本数据的服务器中的多个目标文本按照所述多个目标文本中每个目标文本对应的第二字段记录的时间的先后顺序进行排序,得到排序后的第1至第m个目标文本,将第1个目标文本作为预设文本,其中,所述多个目标文本所记录的文本内容相同,所述第二字段用于记录对应的目标文本的发布时间;将第1个目标文本对应的第一字段的值设置为第一预设时间,将所述第一预设时间作为所述预设标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511001307.4A CN106919626B (zh) | 2015-12-28 | 2015-12-28 | 数据处理方法和装置以及数据查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511001307.4A CN106919626B (zh) | 2015-12-28 | 2015-12-28 | 数据处理方法和装置以及数据查询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919626A CN106919626A (zh) | 2017-07-04 |
CN106919626B true CN106919626B (zh) | 2020-05-08 |
Family
ID=59455032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511001307.4A Active CN106919626B (zh) | 2015-12-28 | 2015-12-28 | 数据处理方法和装置以及数据查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919626B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134547B (zh) * | 2019-04-28 | 2023-08-18 | 平安科技(深圳)有限公司 | 一种基于中间件的重复数据删除方法和相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859309A (zh) * | 2009-04-07 | 2010-10-13 | 慧科讯业有限公司 | 重复文本识别系统及方法 |
CN102982011A (zh) * | 2011-09-07 | 2013-03-20 | 百度在线网络技术(北京)有限公司 | 一种用于识别失序文本的方法与设备 |
CN103559230A (zh) * | 2013-10-22 | 2014-02-05 | 南车株洲电力机车有限公司 | 一种工程车记录信息的处理方法 |
CN103970722A (zh) * | 2014-05-07 | 2014-08-06 | 江苏金智教育信息技术有限公司 | 一种文本内容去重的方法 |
CN105183835A (zh) * | 2015-08-31 | 2015-12-23 | 小米科技有限责任公司 | 社交软件中信息标记的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2531938A1 (en) * | 2010-02-05 | 2012-12-12 | FTI Technology LLC | Propagating classification decisions |
US8983920B2 (en) * | 2011-08-30 | 2015-03-17 | Open Text S.A. | System and method of quality assessment of a search index |
-
2015
- 2015-12-28 CN CN201511001307.4A patent/CN106919626B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859309A (zh) * | 2009-04-07 | 2010-10-13 | 慧科讯业有限公司 | 重复文本识别系统及方法 |
CN102982011A (zh) * | 2011-09-07 | 2013-03-20 | 百度在线网络技术(北京)有限公司 | 一种用于识别失序文本的方法与设备 |
CN103559230A (zh) * | 2013-10-22 | 2014-02-05 | 南车株洲电力机车有限公司 | 一种工程车记录信息的处理方法 |
CN103970722A (zh) * | 2014-05-07 | 2014-08-06 | 江苏金智教育信息技术有限公司 | 一种文本内容去重的方法 |
CN105183835A (zh) * | 2015-08-31 | 2015-12-23 | 小米科技有限责任公司 | 社交软件中信息标记的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106919626A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8209318B2 (en) | Product searching system and method using search logic according to each category | |
JP5575902B2 (ja) | クエリのセマンティックパターンに基づく情報検索 | |
CN100504866C (zh) | 一种综合搜索结果的排序系统及方法 | |
CN106919625B (zh) | 一种互联网用户属性识别方法和装置 | |
US20080005148A1 (en) | Automated knowledge base of feed tags | |
CN105404699A (zh) | 一种搜索财经文章的方法、装置及服务器 | |
CN107291755B (zh) | 一种终端推送方法及装置 | |
US20150341771A1 (en) | Hotspot aggregation method and device | |
CN106874392B (zh) | 受众用户信息的索引存储及广告信息投放的方法和装置 | |
CN104915426B (zh) | 信息排序方法、用于生成信息排序模型的方法及装置 | |
CN106815265B (zh) | 裁判文书的搜索方法及装置 | |
CN105589894B (zh) | 文档索引建立方法和装置、文档检索方法和装置 | |
CN106933916B (zh) | Json字符串的处理方法及装置 | |
CN108509545B (zh) | 一种文章的评论处理方法及系统 | |
CN111241400A (zh) | 一种信息搜索方法及装置 | |
TW201333727A (zh) | 開端式偵測及文字資料中之字叢集之分類 | |
CN106919626B (zh) | 数据处理方法和装置以及数据查询方法和装置 | |
CN108170693B (zh) | 推送热词的方法及装置 | |
CN106372123A (zh) | 一种基于标签的相关内容推荐方法和系统 | |
CN112445895B (zh) | 一种识别用户搜索场景的方法及系统 | |
CN108268545A (zh) | 一种分级的用户标签库的创建的方法和装置 | |
CN107577667A (zh) | 一种实体词处理方法和装置 | |
CN105117410A (zh) | 一种应用对象的创建方法及装置 | |
CN112015730A (zh) | 标签匹配方法及装置、存储介质、服务器 | |
CN110929207A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |