发明内容
本发明提供一种数据检索方法及装置,用以实现高检索效率、低资源消耗的数据检索。
本发明提供的数据检索方法,包括:获取用户输入的检索关键词,根据所述检索关键词查询词语索引模块,以获取所述词语索引模块中预置的与所述检索关键词对应的词语标识信息;
根据所述词语标识信息查询反向索引模块,以获取所述反向索引模块中预置的与所述词语标识信息对应的压缩存储的文档信息;
对所述文档信息进行解压缩,以获取与所述检索关键词相关的文档的文档标识信息;
根据所述检索关键词和所述文档标识信息查询词语位置索引模块,以获取所述检索关键词在所述文档标识信息对应的文档中的位置信息;
根据所述文档标识信息及所述位置信息显示所述文档。
本发明提供的数据检索装置,包括获取模块、词语索引模块、反向索引模块、词语位置索引模块和显示模块,其中:
所述获取模块与所述词语索引模块、反向索引模块、词语位置索引模块和显示模块连接,用于获取用户输入的检索关键词,根据所述检索关键词查询词语索引模块,以获取所述词语索引模块中预置的与所述检索关键词对应的词语标识信息;
根据所述词语标识信息查询反向索引模块,以获取所述反向索引模块中预置的与所述词语标识信息对应的压缩存储的文档信息;
对所述文档信息进行解压缩,以获取与所述检索关键词相关的文档的文档标识信息;
根据所述检索关键词和所述文档标识信息查询词语位置索引模块,以获取所述检索关键词在所述文档标识信息对应的文档中的位置信息;
将对应于所述文档标识信息的所述文档及所述信息参数发送给所述显示模块,以根据所述文档标识信息及所述位置信息显示所述文档。
本发明的数据检索方法及装置,由于通过查询到对应于检索关键词的词语标识信息,并进一步通过该词语标识信息从反向索引模块中查询到对应的文档信息,从而仅对该部分文档信息进行解压缩,即可获取实现该检索所需文档标识信息。既能够节约存储空间,又能够极大地缩短处理时间,从而提高检索效率。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的技术方案进行清楚、完整地描述。
图1为本发明数据检索方法的流程图。如图1所示,该数据检索方法包括:
步骤S100,获取用户输入的检索关键词,根据检索关键词查询词语索引模块,以获取词语索引模块中预置的与检索关键词对应的词语标识信息;
其中,词语索引模块中存储有预置的词语列表,包括词语的循环冗余校验(CRC)值,词语标识信息,与各词语相关的文档数量及该词语在所有文档中出现的总次数信息。该词语索引模块中存储的文件以.pji作为文件扩展名。
步骤S200,根据词语标识信息查询反向索引模块,以获取反向索引模块中预置的与词语标识信息对应的压缩存储的文档信息;
其中,反向索引模块中存储有对应于词语索引模块中各词语的反向索引数据,其包括与各词语相关的文档标识信息(例如包括文档ID,文档的作者及文档的分类信息等),该词语在该文档中所属字段(例如,该词语包括在该文档的标题、摘要或正文等,该所属字段是用四个字节的bit位表示该词语出现在哪个字段,第N个bit位表示该关键词是否出现在第N个字段,故该所属字段可用于表示32个字段的信息),以及该词语在该文档中所出现的次数(保存该次数能够避免重复计算,以提高性能和检索速度)。该反向索引模块中存储的文件以.pjd作为文件扩展名。
步骤S300,对文档信息进行解压缩,以获取与所述检索关键词相关的文档的文档标识信息;
其中,由于该反向索引模块中存储的数据量较为庞大,为节约存储空间,将文档标识信息压缩存储。并且,在利用该反向索引模块进行检索时,并不一次性地将全部文档信息进行解压缩,而是在根据步骤S100中获取的词语标识信息,查询到该反向索引模块中用于存储所需文档信息的存储单元地址,仅对该存储单元地址所存储的内容进行解压缩,从而获取所需的文档标识信息。
步骤S400,根据检索关键词和文档标识信息查询词语位置索引模块,以获取检索关键词在文档标识信息对应的文档中的位置信息;
其中,词语位置索引模块中存储有各文档对应的所有词语出现的位置,具体包括词语出现在文档的哪个字段、以及字段中的哪个具体位置。对各词语的位置信息的比特(bit)位可按照如下分配:
词语在字段中的位置:长度23bit,bit位1~23;
是否是该字段中最后一次出现:长度1bit,bit位24;
字段ID:长度为8bit的整型数,用该8bit整型数来表示32个字段中的任意一个。
该词语位置索引模块中存储的文件以.pjp作为文件扩展名。
步骤S500,根据文档标识信息及位置信息显示文档。
其中,获取文档标识信息及检索关键词在该文档中的位置信息后,根据这些信息查询文档数据库(可以为任意形式的、存储文档资源的数据库或系统),以获取整篇文档或包含检索关键词的部分文档,并返回给检索用户。
根据上述实施例的数据检索方法,由于通过从词语索引模块中查询到对应于检索关键词的词语标识信息,并通过该词语标识信息从反向索引模块中查询到对应的文档信息,从而仅对该部分文档信息进行解压缩,即可获取实现该检索所需文档标识信息。一方面,能够节约存储空间,另一方面,其相对于对全部文档信息进行解压缩,能够极大地缩短处理时间,从而提高检索效率。
进一步地,在上述实施例的数据检索方法中,检索关键词对应的词语标识信息为反向索引模块中用于存储与该检索关键词相关的文档信息的起始位置。该起始位置即为反向索引模块中用于存储对应于该检索关键词的首个压缩的文档信息的存储单元地址。读取从该存储单元地址开始的连续数个存储单元的内容,直至读取到用于标识对应于该检索关键词的结束位为止,该结束位例如为所有值均为0的字节。
进一步地,对文档信息进行解压缩,以获取与检索关键词相关的文档的文档标识信息的步骤之后还包括:从文档信息中获取检索关键词在各文档中出现的次数;相应地,根据文档标识信息及位置信息显示文档的步骤中还包括显示检索关键词在文档中出现的次数。
根据上述实施例的数据检索方法,能够提供给检索用户更详细的信息,以方便用户根据各文档中该检索关键词出现的次数来选择性地进行文档浏览。
进一步地,获取用户输入的检索关键词,根据检索关键词查询词语索引模块,以从词语索引模块中预置的与检索关键词对应的词语标识信息的步骤之前,还包括:
在词语索引模块中预置词语列表,词语列表包括多个词语及与词语对应的词语标识信息;
在反向索引模块中预置与词语标识信息对应的文档标识信息;
对文档标识信息进行压缩。
进一步地,上述对文档信息进行压缩的步骤可具体包括:
利用2比特位来表示所述文档标识信息所占用的字节数,并将对应于各所述词语的连续四个文档标识信息所占用的字节数组合在一个用于存储字节数信息的字节中;
删除所述四个文档标识信息中所占用的内容为0的字节、并连续存储内容不为0的字节。
相应地,对所述文档信息进行压缩的步骤具体包括:
利用2比特位来表示所述文档标识信息所占用的字节数,并将对应于各所述词语的连续四个文档标识信息所占用的字节数组合在一个用于存储字节数信息的字节中;
删除所述四个文档标识信息中所占用的内容为0的字节、并连续存储内容不为0的字节。
上述压缩方法为分组压缩方法,其不仅可以用于压缩反射索引模块中存储的数据,也可以用于对词语索引模块和词语位置索引模块的数据进行压缩存储。
图2为本发明数据检索方法中采用分组压缩方式进行数据压缩的示意图。下面结合图2对该分组压缩方法进行详细说明。
在本数据检索方法中应用的各模块中,都是以整型数格式存储数据的,即为各数据分配四个字节。但是在该数据检索方法中,所存储的数据通常不会完全占用四个字节。尤其当采用“差值法”(即:在整型数序列中,只保存后一个与前一个的差值)进行数据存储时,这种现象就更为明显。因此,通过对未占有用的字节进行压缩,能够极大地节约存储空间。如图2所示,将每一个整型数占用的字节长度,用2个比特(bit)位表示,例如,将占用一个字节的“00000001”用“00”表示,“00001111”也仅占用一个字节,用“00”表示,将占用二个字节的“11111111 00000001”用“01”表示,将占用三个字节的“11111111 11111111 00000001”用“10”表示,同理,占用四个字节的数据可用“11”表示(图中未示出)。将图2中的四个整型数的用于表示字节长度的bit位组成一个字节,即构成“00000110”,并将上述占用的字节存储在连续的存储单元中。
在进行解压缩时,通对上述用于表示四个整型数字节长度的字节进行位运算,即可获知各整型数所占用的字节,根据该字节,即可对连续存储的多个存储单元进行划分,以获得压缩前的四个整型数。
利用上述分组压缩方法的数据检索方法,能够节约大量存储空间,并且由于在解压缩的过程中,通过对一个字节进行运算,即可处理四个整型数,能够极大地提高处理速度(处理速度其比传统方式快3~4倍),从而提高数据检索的响应速度,进一步提升整个检索系统的访问承载量。
进一步地,在上述实施例的数据检索方法中,还可包括索引信息模块,其用于保存索引meta信息及索引配置信息,以保证索引加载时读取到正确的参数。该索引信息模块中存储的文件以.pjh作为文件扩展名。
图3为本发明数据检索装置的结构示意图。如图3所示,本发明数据检索装置包括获取模块10、词语索引模块20、反向索引模块30、词语位置索引模块40和显示模块50,其中:
获取模块10与词语索引模块20、反向索引模块30、词语位置索引模块40和显示模块50连接,用于获取用户输入的检索关键词,根据检索关键词查询词语索引模块20,以获取词语索引模块20中预置的与检索关键词对应的词语标识信息;
根据词语标识信息查询反向索引模块30,以获取反向索引模块30中预置的与词语标识信息对应的压缩存储的文档信息;
对文档信息进行解压缩,以获取与检索关键词相关的文档的文档标识信息;
根据检索关键词和文档标识信息查询词语位置索引模块40,以获取检索关键词在文档标识信息对应的文档中的位置信息;
将对应于文档标识信息的文档及信息参数发送给显示模块50,以根据文档标识信息及位置信息显示文档。
根据上述实施例的数据检索装置,由于通过从词语索引模块中查询到对应于检索关键词的词语标识信息,并通过该词语标识信息从反向索引模块中查询到对应的文档信息,从而仅对该部分文档信息进行解压缩,即可获取实现该检索所需文档标识信息。一方面,能够节约存储空间,另一方面,其相对于对全部文档信息进行解压缩,能够极大地缩短处理时间,从而提高检索效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。