一种生成文档索引的方法和装置以及一种搜索方法和装置的制造方法

文档序号:8395988阅读:205来源:国知局
一种生成文档索引的方法和装置以及一种搜索方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网搜索技术领域,具体涉及一种生成文档索引的方法和装置以及一种搜索方法和装置。
【背景技术】
[0002]在搜索引擎系统中,倒排索引被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。
[0003]即倒排索引会记录每个词在文档里出现的位置(也称为偏移)。为了更好地提升搜索效果,有时需要记录与这些位置相关的信息,包括但不限于:
[0004]1.这个位置包括在书名号里;例如,《资治通鉴》中的‘通鉴’的出现就是在书名号里;
[0005]2.这个位置包括在引号里;
[0006]3.这个位置是在html标签<H3>里。
[0007]倒排索引用16个bit来记录每个词的每次出现位置,为了记录与位置相关的信息,一般的实现方式是将16bit扩充为32bit,低16位存储位置,高16bit存储与位置相关的信息。当时这种方法带来如下问题:一方面,索引增长太多,由于倒排索引的主要内容为每个词的出现位置,如果将这个值从16bit扩充到32bit,整个倒排索引会增长一倍。另一方面,大多数的位置并具备有价值的与该位置相关的信息,因此实际上大多数存储资源都被浪费了。

【发明内容】

[0008]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种生成文档索引的方法和装置以及一种搜索方法和装置。
[0009]依据本发明的一个方面,提供了一种生成文档索引的方法,其中,该方法包括:
[0010]生成以文档中的词为索引的第一索引表,用于记录词以及该词在文档中的位置;
[0011]生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息;
[0012]其中,只有文档中的一个位置具有需要记录的与该位置相关信息时,才在所述第二索引表中进行记录。
[0013]可选地,所述生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息包括:
[0014]在第二索引表中,以三元组的形式记录与位置相关的信息;
[0015]所述三元组由以下三元构成:与位置相关的信息的开始位置;与位置相关的信息的长度;与位置相关的信息的类型。
[0016]可选地,所述每个位置由16比特位来记录;
[0017]所述与位置相关的信息的开始位置由16比特位来记录;
[0018]所述与位置相关的信息的长度由8比特位来记录;
[0019]所述与位置相关的信息的类型由8比特位来记录。
[0020]依据本发明的另一个方面,提供了一种搜索方法,其中,该方法包括:
[0021]接收搜索请求方发来的搜索词;
[0022]根据第一索引表找到搜索词在文档中的位置;其中,第一索引表用于记录词以及该词在文档中的位置;
[0023]根据第二索引表找到与搜索词在文档中的位置相关的信息;其中,第二索引表用于记录位置以及与位置相关的信息;
[0024]基于所述搜索词对应的文档中的位置和与位置相关的信息,将所述文档作为搜索结果返回给搜索请求方。
[0025]依据本发明的一个方面,提供了一种生成文档索引的装置,其中,该装置包括:
[0026]第一索引表生成单元,适于生成以文档中的词为索引的第一索引表,用于记录词以及该词在文档中的位置;
[0027]第二索引表生成单元,适于生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息;其中,只有文档中的一个位置具有需要记录的相关信息时,才在所述第二索引表中进行记录。
[0028]可选地,第二索引表生成单元,适于在第二索引表中,以三元组的形式记录与位置相关的信息;
[0029]其中,所述三元组由以下三元构成:与位置相关的信息的开始位置,与位置相关的信息的长度;与位置相关的信息的类型。
[0030]可选地,
[0031]所述第一索引表生成单元,适于将每个位置用16比特位来记录;
[0032]所述第二索引表生成单元,适于将与位置相关的信息的开始位置用16比特位来记录,将与位置相关的信息的长度用8比特位来记录,适于与将位置相关的信息的类型用8比特位来记录。
[0033]依据本发明的另一个方面,提供了一种搜索装置,其中,该装置包括:
[0034]接收单元,适于接收搜索请求方发来的搜索词;
[0035]搜索单元,适于根据第一索引表找到搜索词在文档中的位置,以及根据第二索引表找到与搜索词在文档中的位置相关的信息;其中,第一索引表用于记录词以及该词在文档中的位置,第二索引表用于记录位置以及与位置相关的信息;
[0036]发送单元,适于基于所述搜索词对应的文档中的位置和与位置相关的信息,将所述文档作为搜索结果返回给搜索请求方。
[0037]根据本发明的这种生成以文档中的词为索引的第一索引表,用于记录词以及该词在文档中的位置,生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息,其中,只有文档中的一个位置具有需要记录的与该位置相关信息时,才在所述第二索引表中进行记录的技术方案,将位置以及与位置相关的信息分离存储,使得在索引中扩展与位置相关的信息更加方便灵活,且只有实际存在的与位置相关的信息才占用存储空间,避免了存储资源的浪费。
[0038]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0039]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0040]图1示出了根据本发明一个实施例的一种生成文档索引的方法的流程图;
[0041]图2示出了根据本发明一个实施例的一种搜索方法的流程图;
[0042]图3示出了根据本发明一个实施例的一种生成文档索引的装置的结构图;
[0043]图4示出了根据本发明一个实施例的一种搜索装置的结构图。
【具体实施方式】
[0044]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0045]图1示出了根据本发明一个实施例的一种生成文档索引的方法的流程图。如图1所示,该方法包括:
[0046]步骤S110,生成以文档中的词为索引的第一索引表,用于记录词以及该词在文档中的位置;
[0047]步骤S120,生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息;其中,只有文档中的一个位置具有需要记录的与该位置相关信息时,才在所述第二索引表中进行记录。
[0048]图1所示的方法,将位置以及与位置相关的信息分离存储,使得在索引中扩展与位置相关的信息更加方便灵活,且只有实际存在的与位置相关的信息才占用存储空间,避免了存储资源的浪费。
[0049]在本发明的一个实施例中,图1所示方法的步骤S120所述生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息包括:在第二索引表中,以三元组的形式记录与位置相关的信息;
[0050]所述三元组由以下三元构成:与位置相关的信息的开始位置,用start表示;与位置相关的信息的长度,用Ien表示;与位置相关的信息的类型,用rype。
[0051]三元组具体可表示为〈start,len, type〉。
[0052]Start表示与位置相关的信息的开始位置,如书名号的起始位置;
[0053]Ien表示与位置相关的信息的长度,如书名号的长度;
[0054]type表示与位置相关的信息的类型,如该相关的信息为书名号。
[0055]在本发明的一个实施例中每个位置由16比特位(即16bit)来记录;通过位置到三元组列表(即所述的第二索引表)里检索与位置相关的信息。所述与位置相关的信息的开始位置start由16比特位来记录;所述与位置相关的信息的长度Ien由8比特位来记录;所述与位置相关的信息的类型type由8比特位来记录。
[0056]同时,只有当文档包括特征的与位置相关的信息时才在第二索引表中存储,不存在浪费。因此相对于传统的实现方式,能够节约至少40%的索引空间。
[0057]并且与位置相关的信息在存储上与位置分离,实际上使得位置相关信息的扩展更加灵活方便。
[0058]图2示出了根据本发明一个实施例的一种搜索方法的流程图。如图2所示该方法包括:
[0059]步骤S210,接收搜索请求方发来的搜索词;
[0060]步骤S220,根据第一索引表找到搜索词在文档中的位置;其中,第一索引表用于记录词以及该词在文档中的位置;
[0061]步骤S230,根据第二索引表找到与搜索词在文档中的位置相关的信息;其中,第二索引表用于记录位置以及与位置相关的信息;
[0062]步骤S240,基于所述搜索词对应的文档中的位置和与位置相关的信息,将所述文档作为搜索结果返回给搜索请求方。
[0063]图2所示的方法能够给搜索请求方返回基于位置和与位置相关的信息的搜索结果,并且与位置相关的信息与位置分离存储,位置相关信息的扩展更加灵活,且大大节省了索引空间。
[0064]图3示出了根据本发明一个实施例的一种生成文档索引的装置的结构图。如图3所示,该生成文档索引的装置300包括:
[0065]第一索引表生成单元310,适于生成以文档中的词为索引的第一索引表,用于记录词以及该词在文档中的位置;
[0066]第二索引表生成单元320,适于生成以文档中的位置为索引的第二索引表,用于记录位置以及与位置相关的信息;其中,只有文档中的一个位置具有
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1