用于使用和建立块级别索引进行搜索询问的方法和系统的制作方法

文档序号:8361501阅读:304来源:国知局
用于使用和建立块级别索引进行搜索询问的方法和系统的制作方法
【技术领域】
[0001]本发明一般涉及搜索文档的领域。更具体地,本发明涉及用于基于块级别索引进行文档级别的搜索询问的方法。
【背景技术】
[0002]经常发生多个文档包括具有相同内容的章节、部分或组成。例如,一封电子邮件被回复或转发许多次,并且所有回复的或转发的电子邮件都包含原始发送的电子邮件。在来自例如wik1、博客等的社会媒体的发布(post)中发生相同的情况。在诸如带有附件的电子邮件或者ZIP文件的混合文档中,整个子文档(例如附件或ZIP中的文件)可以由许多不同的顶层文档(例如不同的电子邮件或ZIP文件)共享。
[0003]当对包括相同内容的部分的多个文档进行索引(index)时,特别是全部文本索引时,内容的重复的部分将被索引多次,导致索引内的冗余信息以及大尺寸的索引。
[0004]提供对于文档中的重复的块的非冗余索引表示的技术将是真正有帮助的,因为可以节省对相同的块重新分析和索引所浪费的计算能力以及储存空间、即任意种类的永久存储器,例如用于存储索引的硬盘。另一方面,该技术需要提供用于像通常那样以文档级别而不是块级别、即面向文档的部分的搜索和检索而搜索文档的手段。
[0005]因此,需要提供用于针对文档、特别是文本文档进行搜索询问的有效的并且用户友好的方法,所述文档提供相同的部分,特别是相同的文本部分。

【发明内容】

[0006]本发明的实施例的一个目标是提供以有效的并且用户友好的方式针对包括相同部分的文档进行搜索询问的方法、计算机可读介质和系统。通过独立权利要求的特征实现该目标。在从属权利要求中给出了优选实施例。如果没有另外明确指示,则本发明的实施例可以彼此自由组合。
[0007]根据第一方面,描述了用于针对多个文档进行包括具有至少一个搜索项(term)属性的搜索项的搜索询问的方法。每个文档被构造为块的集,每个块与唯一的块ID相关联,并且相同的块与相同的块ID相关联。该方法包括以下步骤:
[0008]-提供包含关于具体搜索项属性和至少一个块ID之间的相关性的信息的第一数据结构;
[0009]-提供包含关于块和文档之间的相关性的信息的第二数据结构;
[0010]-接收搜索询问;
[0011]-通过针对至少一个搜索项属性来搜索该第一数据结构而处理该搜索询问,得到第一询问响应;
[0012]-使用该第二数据结构将该第一询问响应映射到第二询问响应;以及
[0013]-返回该第二询问响应,作为搜索结果。
[0014]第一数据结构提供块级别索引,该块级别索引包括块中包括的块数据(它们是搜索项的搜索项属性)和块ID之间的相关性。包括相同的块数据的相同的块与相同的块ID相关联。由此,块内容仅被索引一次,得到减少的用于存储索引的容量。可以以块级别在第一步骤中进行搜索询问的处理,得到包含所询问的搜索项属性的零个或更多块。通过确定包含在第一步骤中调查到的块的文档,可以将接收到的块转换为文档级别搜索响应。由此,可以减少用于对包括相同的块的多个文档进行搜索询问的计算工作以及用于存储索引的存储空间。
[0015]根据进一步的实施例,第一数据结构是包括多个索引条目的索引,每个索引条目与具体的块数据相关联,该具体的块数据可以形成搜索项内的搜索项属性。由此,该索引可以适配用于存储与块数据相关联的具体数据,例如包含作为块数据的所述搜索项属性的块ID、指示块数据在块内的频率的频率信息或者指示块数据在块内的位置的位置数据。
[0016]根据进一步的实施例,索引的每个条目包括关于至少一个块ID的信息,该块ID指示与各个索引条目相关联的块数据(或者根据搜索项用语的搜索项属性)被包括在具有所述块ID的块内。由此,第一数据结构是关于搜索项属性可搜索的,并且可以确定包含所述搜索项属性的块ID。
[0017]根据进一步的实施例,第一数据结构包括对于每个搜索项属性的关于该搜索项属性在块内的位置和/或该搜索项属性在具体块内的出现的频率的另外的信息。
[0018]根据进一步的实施例,第二数据结构是提供关于哪个块被包含在哪个文档中和/或哪个文档由哪些块组成的信息的列表。换句话说,第二数据结构是包含块和文档之间的映射信息的支持数据结构。通过第二数据结构,可以得出块-文档关联性。优选地,第二数据结构是包括定义块和文档之间的相关性的第一数据集和定义文档和块之间的相关性的第二数据集的双向数据结构。
[0019]根据进一步的实施例,处理搜索询问的步骤包括分析步骤,在该分析步骤中,分析搜索询问的结构和逻辑运算符,并且优化处理以便减少处理时间。该分析步骤可以确定可以仅以块级别处理的、即不用将块级别结果映射为文档级别结果的搜索项的至少一个子项。优选地,该分析步骤可以适配为确定可以直接以块级别处理的“或运算符或“近似运算符。
[0020]根据进一步的实施例,搜索询问由通过逻辑运算符链接的多个搜索项属性组成,其中依赖于逻辑运算符,仅使用第一数据结构以块级别处理搜索询问的至少一个子集。优选地,确定包括“或运算符的至少一个子项。在确定至少一个子项之后,以块级别处理所述子项。具体地,在第一数据结构内询问两个搜索项属性(例如通过“或运算符接连的),得到两个块集,每个集与一个搜索项属性相关。然后,通过对所述两个块集应用“或”运算符将这两个块集合并为单个块集。由此,完全以块级别处理子项。
[0021]根据进一步的实施例,依赖于搜索询问内的逻辑运算符,产生两个搜索结果,其中第一搜索结果包含从使用第一数据结构的块级别的搜索询问处理得到的减少的搜索命中数量,并且第二搜索结果包含从使用第一数据结构的块级别的以及使用第二数据结构的文档级别的相继处理得到的全部量的搜索命中。优选可以应用所述处理用于处理“与运算。可以仅考虑各个块、即不用到文档级别的任何映射而产生第一搜索结果。然后,或者同时地,可以产生第二搜索结果。所述第二搜索结果可以包括通过使用第一数据结构确定两个块集、通过第二数据结构将块集映射到文档集并通过对所述两个文档集应用逻辑运算符(优选是“与运算符)合并所述两个文档集的搜索询问的所有命中。由此,可以实现包含包括了在各个块中彼此靠近地定位的搜索项属性的有限数量的搜索命中的快速的第一搜索结果。稍后,返回包含所有搜索命中的第二搜索结果。
[0022]根据进一步的方面,描述了产生数据结构的方法,该数据结构用于搜索包括至少部分相同的块的文档。该方法包括以下步骤:
[0023]-接收文档;
[0024]-定义在接收的文档内的块,并为每个块分配唯一的块ID,其中相同的块与相同的块ID相关联;
[0025]-对定义的块索引,并产生包含关于块数据与包括所述块数据的块ID之间的相关性的信息的第一数据结构;
[0026]-产生包括关于块和文档之间的关联性的信息的第二数据结构;以及
[0027]-存储第一和第二数据结构用于搜索询问处理。
[0028]通过进行上述的方法,可以产生可以用于以块级别搜索文档并将通过块级别搜索获得的结果合并为文档级别搜索结果的数据结构集。第一数据结构的主要优点是相同的块仅被索引一次,即减少了对文档索引的计算工作以及用于存储索引的存储空间。
[0029]根据进一步的实施例,在索弓丨之前,将所要索引的每个块的内容与已经被索引的块的内容相比较。优选地,仅在具有相同的内容的块在之前还未被索引时才索引该块。由此,可以避免对包括相同内容的块的双重索引。
[0030]根据进一步的实施例,对于每个块,产生并存储块数据的哈希值。通过对块的全部内容应用哈希函数得到所述哈希值。通过使用哈希值,简化了所要索引的新块和已经被索弓丨的块的内容的比较。优选地,基于要被索引的实际块的哈希值和先前被索引的块的哈希值做出对块索引的决定。如果哈希值相同,则块的内容也相同,并且不需要进行索引。如果哈希值不同,则需要对块索引,并且需要更新第一数据结构。
[0031]根据进一步的方面,描述了用于针对多个文档进行搜索询问的系统,所述搜索询问包括具有至少一个搜索项属性的搜索项。每个文档被构造为块的集,每个块包括唯一的块ID,并且相同的块与相同的块
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1