CN103164408A - 基于垂直搜索引擎的信息存储、查询方法及其装置 - Google Patents
基于垂直搜索引擎的信息存储、查询方法及其装置 Download PDFInfo
- Publication number
- CN103164408A CN103164408A CN2011104084958A CN201110408495A CN103164408A CN 103164408 A CN103164408 A CN 103164408A CN 2011104084958 A CN2011104084958 A CN 2011104084958A CN 201110408495 A CN201110408495 A CN 201110408495A CN 103164408 A CN103164408 A CN 103164408A
- Authority
- CN
- China
- Prior art keywords
- document
- property value
- stored
- play amount
- attribute 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于垂直搜索引擎的信息存储、查询方法及其装置,包括:对每个待存储的文档,根据其指定属性字段中包含的属性值,确定属性相关值;判断在消重字典中是否存储有与所述属性相关值相同的数值;如果判断结果为是,将消重字典中存储的起始位置的偏移量和属性值数目,写入到正排表索引文件中;否则,确定所述属性值在正排表数据文件中起始位置的偏移量和属性值数目;将确定的属性相关值、偏移量和属性值数目存储在消重字典中;将确定的偏移量和属性值数目写入到正排表索引文件中,并在该偏移量指向的位置开始写入待存储文档的指定属性字段中包含的属性值,从而降低了内存资源的占用,提高用户使用垂直搜索引擎查询相关信息的速率。
Description
技术领域
本申请涉及搜索引擎技术领域,尤其涉及一种基于垂直搜索引擎的信息存储方法及其装置,以及一种基于垂直搜索引擎的信息查找方法及其装置。
背景技术
垂直搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等问题而提出来的新的搜索引擎服务模式,是搜索引擎的细分和延伸,用于针对某一特定的领域、某一特定的人群或者某一特定需求,提供有一定价值的信息和相关服务。垂直搜索引擎通过对网页库中的某类专门信息进行整合,定向、分字段抽取出需要的数据,对这些数据进行处理后再以某种形式返回给用户。
垂直搜索引擎的基本架构如图1所示,其中,垂直搜索引擎的索引***数据库主要包括字典与倒排表、正排表/属性(Attribute)和摘要(Summary)三部分。如图2所示,所述字典和倒排表组合在一起称之为倒排索引,字典是指由索引词组成的索引表,在字典中保存了各种中英文词汇以及对应该些词汇的一些统计信息。倒排表是指每个索引词出现过的文档集合,以及命中位置等信息组成的记录表。倒排表中的各个文档以文档编号唯一标识,每个文档编号是由该文档所在网页的URL经过MD5算法变换得到的一个整型值。字典一般存储在内存中,倒排表一般存储在硬盘上。正排表/属性是存储在内存中,用于记录倒排表中的每个文档的属性值的集合。其结构组成如图3所示,包括头信息文件、正排表索引文件以及正排表数据文件。其中,头信息文件用于存储文档字段值的类型信息、文档数量等信息,正排表索引文件用于存储每个文档中预设字段的属性值在正排表数据文件中的起始位置的偏移量和属性值个数的信息对,正排表数据文件,用于按照预设顺序存储每个文档的预设字段的属性值。摘要是用于将搜索结果返回的文档的字段信息的集合。
基于上述垂直搜索引擎的基本架构,垂直搜索引擎的查询原理具体如下:
S1:将用户输入的搜索词作拆分处理,根据拆分后的搜索词进行倒排索引。即根据拆分后的搜索词,分别在字典中查找与该拆分后的各搜索词对应的词典信息,然后根据查找到的词典信息在倒排表中查询出现过该词典的所有文档的标识信息的集合。
S2:根据S1中查找到的所有文档的标识信息,在正排表中查询对应每个文档标识信息的文档的属性值。
S3:按照预设的排序算法,根据在正排表中查找到的每个文档的属性值,计算每个文档的排序分值,并根据计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次向用户返回文档的摘要信息。
这里以输入的搜索词汇是dell computer为例,对上述垂直搜索引擎过程做以详细说明。首先将输入的搜索词汇做分词处理,分成dell和computer,然后在字典里分别查询dell和computer,得到与dell和computer分别对应的倒排表,如图4所示,以computer为例,对应computer的文档标识信息为0和2,即computer在标识信息为0和2的文档中出现过。对应标识信息0和2,在正排表中查询文档标识为0和2的文档对应的属性值。例如,以标识信息2为例,在正排表索引文件中取得与该文档对应的属性值实际保存的起始存储位置的偏移量和属性值个数信息对,即11/6,其中11表示该文档对应的属性值实际保存的起始位置的偏移量,6表示该文档的属性值个数(如图4所示),然后根据获得的偏移量和属性值个数,在正排表数据文件中查询到属性值:0,1,50032886,50032888,50041278和50048524,以同样的步骤获取文档标识为0的文档的属性值信息,然后使用排序算法,根据查找到的文档0、2的属性值信息,分别对文档标识信息为0和2的文档进行排序分值计算,得到对应文档的排序分值,根据计算得到的排序分值对两个文档进行排序,例如排序后的顺序为2,0,则根据排序后的顺序2,0,依次向用户返回文档2和0的摘要信息。
上述详细阐述了使用垂直搜索引擎技术实现数据搜索的具体实施方案,因为正排表是需要存储在内存中的,而在正排表的数据文件中,存储的被索引的文档的属性值中,会有较多的相同的文件属性值重复存储,例如在上述图4中,文档标识为0的文档属性值和文档标识为2的文档属性值就是完全相同的,而在正排表数据文件中却要重复存储两次,这种重复性的存储会占用较多的内存资源,使得在用户使用垂直搜索引擎查询相关信息时,会因为***的内存资源不够而使得搜索的速率降低。
发明内容
本申请实施例提供一种基于垂直搜索引擎的信息存储、查询方法及其装置,用以降低对内存资源的占用,提高用户使用垂直搜索引擎查询相关信息的速率。
本申请实施例提出的技术方案如下:
一种基于垂直搜索引擎的信息存储方法,包括:针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;根据确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值、该指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;如果判断结果为是,将在消重字典中存储的与确定的属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;如果判断结果为否,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将确定的所述属性相关值、起始存储位置的偏移量和属性值数目映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
一种基于垂直搜索引擎的信息存储方法,包括:针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;根据确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值和文档标识信息;如果判断结果为是,根据在消重字典中存储的与确定的属性相关值对应的文档标识信息,在正排表索引文件中与该文档标识信息对应的存储域中查找对应的偏移量和属性值数目;将查找到的偏移量和属性值数目作为该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;如果判断结果为否,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将该待存储的文档的标识信息与确定的所述属性相关值映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
一种基于垂直搜索引擎的信息存储方法,包括:在对应文档一个指定属性字段的正排表索引文件中,当至少两个文档的标识信息分别对应的存储域中存储的偏移量和属性值数目相同时,判断所述至少两个文档中的一个文档的该指定属性字段中包含的属性值是否发生变化;若发生变化,则根据该文档的标识信息对应的存储域中存储的偏移量和属性值数目,在该指定属性字段的正排表数据文件中查找对应该文档的相应数目的属性值;并将查找到的属性值重新写入到所述数据文件中的空白区域,并将写入的属性值更新为变化后的属性值;以及修改该文档的标识信息对应的存储域中存储的偏移量和属性值数目与重新写入的区域和更新后的属性值数目对应。
一种基于上述信息存储方法进行信息查询的方法,包括:将用户输入的搜索词作拆分处理,根据拆分后的搜索词基于倒排表进行倒排索引,得到拆分后的搜索词所出现在的至少一个文档的标识信息;针对得到的每个文档的标识信息,分别基于正排表进行正排索引,得到每个文档分别对应的属性值;按照预设的排序算法,根据在正排表中得到的每个文档的属性值,计算每个文档的排序分值;根据计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次返回各文档的摘要信息。
一种基于垂直搜索引擎的信息存储装置,包括:属性相关值确定单元,用于针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;判断单元,用于根据属性相关值确定单元确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值、该指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;执行单元,用于在判断单元判断出消重字典中存储有所述属性相关值时,将在消重字典中存储的与属性相关值确定单元确定的属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;以及在判断单元判断出消重字典中未存储有所述属性相关值时,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将确定的所述属性相关值、起始存储位置的偏移量和属性值数目映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
一种基于垂直搜索引擎的信息存储装置,包括:属性相关值确定单元,用于针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;判断单元,用于根据属性相关值确定单元确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值和文档标识信息;执行单元,用于在判断单元判断出消重字典中存储有所述属性相关值时,根据在消重字典中存储的与确定的属性相关值对应的文档标识信息,在正排表索引文件中与该文档标识信息对应的存储域中查找对应的偏移量和属性值数目;将查找到的偏移量和属性值数目作为该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;以及在判断单元在判断单元判断出消重字典中未存储有所述属性相关值时,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将该待存储的文档的标识信息与确定的所述属性相关值映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
一种基于垂直搜索引擎的信息存储装置,包括:判断单元,用于在对应文档一个指定属性字段的正排表索引文件中,当至少两个文档的标识信息分别对应的存储域中存储的偏移量和属性值数目相同时,判断所述至少两个文档中的一个文档的该指定属性字段中包含的属性值是否发生变化;查找单元,用于在判断单元判断出至少一个文档的该指定属性字段中包含的属性值发生变化时,则根据该文档的标识信息对应的存储域中存储的偏移量和属性值数目,在该指定属性字段的正排表数据文件中查找对应该文档的相应数目的属性值;修改单元,用于将查找单元查找到的属性值重新写入到所述数据文件中的空白区域,并将写入的属性值更新为变化后的属性值;以及修改该文档的标识信息对应的存储域中存储的偏移量和属性值数目与重新写入的区域和更新后的属性值数目对应。
一种基于上述信息存储装置进行信息查询的装置,包括:分词处理单元,用于将用户输入的搜索词作拆分处理,根据拆分后的搜索词基于倒排表进行倒排索引,得到拆分后的搜索词所出现在的至少一个文档的标识信息;属性值确定单元,用于针对分词处理单元得到的每个文档的标识信息,分别基于正排表进行正排索引,得到每个文档分别对应的属性值;排序分值计算单元,用于按照预设的排序算法,根据属性值确定单元在正排表中得到的每个文档的属性值,计算每个文档的排序分值;摘要信息返回单元,用于根据排序分值计算单元计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次返回各文档的摘要信息。
本申请实施例针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值,根据确定的属性相关值,判断在消重字典中是否存储有与该属性相关值相同的数值,如果判断结果为是,将在消重字典中存储的与该属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排索引文件中与该待存储文档的标识信息对应的存储域中;如果判断结果为否,则确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,然后将确定出的属性相关值、起始存储位置的偏移量和属性值数目映射存储在所述消重字典中,并将确定的偏移量和属性值数据写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,在正排表中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值,从而使得在不同的待存储文档在某一指定属性字段内具有相同属性值时,在正排表数据文件中只对该指定字段的属性值存储一次,然后在正排表索引文件中对应存储该属性值在正排表数据文件中的起始存储地址的偏移量和属性值数目,从而能够降低垂直搜索引擎***中正排表对内存资源的占用,进而提高了用户使用垂直搜索引擎***进行信息查询的速率。
附图说明
图1为现有技术中,提出的垂直搜索引擎的基本组成架构图;
图2为现有技术中,提出的垂直搜索引擎中倒排索引的组成结构图;
图3为现有技术中,提出的垂直搜索引擎中正排索引的组成结构图;
图4为现有技术中,提出的垂直搜索引擎工作原理示意图;
图5为本申请实施例一中,提出的基于垂直搜索引擎的信息存储方法流程图;
图6为本申请实施例一中,提出的基于垂直搜索引擎的信息存储方法对文档的存储结构图;
图7为本申请实施例一中,提出的基于垂直搜索引擎的信息存储装置结构图;
图8为本申请实施例三中,提出的基于垂直搜索引擎的信息存储方法流程图;
图9为本申请实施例三中,提出的基于垂直搜索引擎的信息存储装置结构图;
图10为本申请实施例四中,提出的基于垂直搜索引擎的信息查询方法流程图;
图11为本申请实施例四中,提出的基于垂直搜索引擎的信息查询装置结构图。
具体实施方式
针对现有技术中存在的在垂直搜索引擎***中,不同文档如果在某一指定属性字段内具有相同的属性值,会在正排表数据文件中重复性存储该些相同的属性值,从而导致占用较多的内存资源,使得用户在使用垂直搜索引擎***查询信息时,会因为***的内存资源不够而致使搜索速率降低的问题,本申请实施例这里提出一种基于垂直搜索引擎的信息存储、查询方法及其装置,主旨是尽量在不同文档中具有相同属性值时,在正排表数据文件中尽量仅存储一份该些相同的属性值,然后在正排表索引文件中分别使用相同的起始地址偏移量指向数据文件中这些相同的属性值,从而为后续查询属性值时提供实现基础。并因此有效地降低了正排表对内存资源的占用,提高了用户使用垂直搜索引擎***查询信息的速率,特别是对于大多数文档在具有较多相同的属性值的情况下,本申请实施例的方案效果将更为明显。
需要说明的是,针对每一个待存储的文档,可以只包含一个属性字段,也可以包含多个属性字段,每个属性字段内又包含不同的属性值。本申请各实施例中以待存储文档的每一指定属性字段为例分别介绍,即本申请方案可以适用于待存储文档的不同指定属性字段,为描述方便清晰起见,本申请实施例这里仅是以其中某一个指定的属性字段为例来进行介绍。在建立垂直搜索引擎***中的正排表时,一般是对应文档的每个指定属性字段分别建立一个正排表,即文档有多个属性字段时,可能会对应多个不同的正排表,并在多个不同的正排表中分别查询到不同的属性值。例如,假设一个文档有4个不同的属性字段,则对应该文档的4个不同的属性字段会有4个不同的正排表分别存储不同属性字段的属性值。
下面将结合各个附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
本申请实施例这里提出一种基于垂直搜索引擎的信息存储方法,如图5所示,具体过程如下:
步骤501,根据配置信息,初始化正排表中的头信息文件Fieldname.pfl.info。
其中,配置信息包括文档数目,文档相应的字段值类型等信息。具体地,初始状态下,文档数目可以是0。字段值类型可以但不限于包括定长多值类型、变长多值类型或者是字符串类型等。
步骤502,在对正排表头信息文件进行初始化配置后,针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值。其中,可以采用预先设定的算法,对该待存储文档的指定属性字段中包含的属性值执行运算,从而得到一个唯一的数值作为该待存储文档的指定属性字段的属性相关值,其中预设的算法可以但不限于是MD5算法或者是哈希(hash)算法,当然还可以为其他可以对数组计算得到唯一数值的算法。
一种较佳的实现方式,可以对该待存储文档的指定属性字段中包含的属性值,执行哈希运算,将运算得到的结果作为该待存储文档的指定属性字段的属性相关值。例如,本申请实施例一这里将待存储文档的指定属性字段中包含的属性值,执行哈希运算,得到一个64位哈希值,将得到的64位哈希值做为该待存储文档的指定属性字段的属性相关值(这里可以称之为key值)。
步骤503,根据步骤502中确定的属性相关值,将确定的属性相关值做为键值key,根据该键值判断在消重字典中是否存储有与确定出的该key值相同的数值,如果判断结果为是,执行步骤504;如果判断结果为否,则执行步骤505。
其中,消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值、该指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目。其中每个文档的每个指定属性字段都对应有一个消重字典,如果一个文档有N个属性字段,则对应该文档就存储了N个消重字典,初始状态下,消重字典中未存储任何信息,随着待存储文档的数目不断增加,消重字典中学习到的存储信息也不断进行更新。消重字典可以存储计算机的任何一个位置,例如可以存储在内存中,也可以存储在计算机硬盘上,较佳地,本申请实施例中选择将消重字典存储在计算机硬盘上。
具体地,消重字典的存储形式可以有多种方式,本申请实施例一这里以对每个文档的指定属性字段采用哈希运算得到的哈希值做为属性相关值为例来进一步阐述消重字典的存储形式,如下述表1所示,是消重字典的其中一种存储形式:
其中,偏移量具体是指该指定属性字段C中包含的属性值在正排表数据文件中存储位置的起始位置偏移量。
步骤504,如果步骤503判断结果为是,即在消重字典中已经存储有与计算得到的属性相关值相同的数值,此时将在消重字典中存储的与确定的属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中。在结束该写入操作以后,执行步骤507。
其中,正排表索引文件中与该待存储文档的标识信息对应的存储域,可以是按照预先设定的规则顺序排列,也可以采用预先指定的方式。较佳地,本申请实施例一这里采用按照以0为起始序号,逐渐递增的方式顺序排列,采用这种方式,不需要重复的占用***处理资源去计算待存储文档的标识信息对应的存储域,较好地节省了***的处理资源。
一种较佳的实现方式,例如,基于上述表1,如果对待存储文档的指定属性字段C中包含的属性值,采用哈希运算法则计算得到哈希值为AA,因为在消重字典中已经存储有AA的数值,此时在消重字典中查询与AA对应的起始存储位置的偏移量0和属性值数目6,进而将查询到的偏移量0和属性值数目6写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,例如该待存储文档的标识信息为9,则将0/6存储到正排表索引文件中第9个存储域中。
步骤505,如果步骤503的判断结果为否,即消重字典中没有存储与计算得到的属性相关值相同的数值,则计算并确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目。
步骤506,将步骤505中确定出的属性相关值、起始存储位置的偏移量和属性值数目映射存储在消重字典中,以对消重字典继续学习,供后续进入的待存储文档使用;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。在结束该写入操作以后,执行步骤507。
步骤507,在对每一个待存储文档存储完毕之后,更新正排表/属性中的头信息文件,将其中的文档数据做出更新。具体地,可以对正排表中头信息文件包含的已存储的文档数目执行递增操作。例如,执行DocNUM+1,将更新后的数值存储给DocNUM的操作。
步骤508,判断所有待存储的文档是否都已经存储完毕,如果还有未存储的文档,则返回执行步骤502,反之则结束所有操作。
进一步地,基于上述步骤501~步骤508中对基于垂直搜索引擎的信息存储方法的详细阐述,本申请实施例一这里以待存储文档的文档标识为0、1和2、采用哈希运算对指定属性字段C中包含的属性值执行运算为例,详细说明本申请基于垂直搜索引擎的信息存储方法,如图6所示,其处理过程如下:
S1:对于文档标识为0的待存储文档,采用哈希运算对指定属性字段C中包含的属性值进行运算,得到文档标识为0的待存储文档的属性字段C中包含的属性值的属性相关值MM。
S2:以确定的属性相关值MM作为键值key,在消重字典中查询是否已存储MM值,由于初始状态下,消重字典中未存储任何信息,因此在消重字典中未查询到属性相关值MM。按照预先设定的算法确定标识信息为0的待存储文档的属性字段C中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,假设计算得到标识信息为0的待存储文档的属性字段C中包含的属性值在正排表数据文件中起始存储位置的偏移量为0,属性值数目为6(如图6中所示),将计算得到的文档0的属性相关值MM、起始存储位置的偏移量0和属性值数目6映射存储在消重字典中,然后将“0/6”写入到正排表索引中对应文档标识0的存储域中。并在正排表数据文件中对应偏移量“0”的位置开始写入文档0的6个属性值:0、1、50032886、50032886、50041278和50048524。对文档0的存储操作执行结束之后,更新正排表头信息文件中的已存储文档数目,即此时正排表头信息文件中DocNUM的值为1。
S3:继续存储文档标识为1和文档标识为2的待存储文档,对于待存储文档1,采用哈希运算法则对其指定属性字段C中包含的属性值进行运算,得到文档1的C属性字段的属性相关值为NN,以确定的属性相关值NN作为键值key,在消重字典中未查询到相同的数值,所以对于文档1的存储执行过程同上述对文档0的存储执行过程,具体请参见上述对文档0的存储过程,这里不再赘述。对于文档标识为2的待存储文档2,采用哈希运算对其指定属性字段C中包含的属性值进行运算,得到属性相关值为MM,以MM作为键值key,在消重字典中查询,由于消重字典中已经存储有相同的数值MM,因此获得消重字典中存储的MM对应的“0/6”(起始存储位置的偏移量和属性值数目),将获得的“0/6”写入到正排表索引文件中对应文档2的存储域中(具体请参见图6所示)。同时将正排表头信息文件中DocNUM的值更新为3。这样在文档0和2的指定属性字段C中均具有相同属性值的情况下,在正排表数据文件中仅对文档0和2中的属性字段C中的属性值存储一次,而避免了像现有技术一样针对文档0和2需要在正排表数据文件中重复存储两次相同的属性值,从而减少了正排表对内存资源的占用,进而提高了后续搜索引擎的速率。此外在正排表索引文件中对应文档0和2的存储域中存储的指向数据文件的属性值起始位置的偏移量均是相同的,因此为后续的文档属性信息索引提供了可实现的基础。
S4:三个待存储的文档0、文档1和文档2均存储完毕,则结束所有操作。
相应地,基于上述方法实施例,本申请实施例一这里还提出了一种基于垂直搜索引擎的信息存储装置,其具体结构组成如图7所示,包括:
属性相关值确定单元601,用于针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;
具体地,上述属性相关值确定单元601,具体用于对该待存储文档的指定属性字段中包含的属性值,执行哈希运算;将运算得到的结果作为该待存储文档的指定属性字段的属性相关值。
判断单元602,用于根据属性相关值确定单元601确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值、该指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;
执行单元603,用于在判断单元602判断出消重字典中存储有所述属性相关值时,将在消重字典中存储的与属性相关值确定单元确定的属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;以及在判断单元602判断出消重字典中未存储有所述属性相关值时,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将确定的所述属性相关值、起始存储位置的偏移量和属性值数目映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
实施例二
进一步地,消重字典可以有多种存储形式,本申请实施例二这里以消重字典中存储文档标识信息和属性相关值信息为例,再详细阐述本申请实施例的另外一种基于垂直搜索引擎的信息存储方法,具体过程如下:
S21~S22,根据配置信息,初始化正排表中的头信息文件Fieldname.pfl.info在对正排表头信息文件进行初始化配置后,针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值。其中,S21~S22的具体实施过程请参见上述实施例一中步骤501~步骤502的详细阐述,这里不再赘述。
S23,将上述过程确定出的属性相关值作为键值key,判断在消重字典中是否存储有与该键值相同的数值。如果判断结果为是,执行S24,如果判断结果为否,则执行S25。
其中,本申请实施例二中提出的消重字典中,映射存储有已经存储的各文档的该指定属性字段的属性相关值和文档标识信息。每个文档的指定属性字段都对应有一个消重字典,如果一个文档有N个指定的属性字段,则对应该文档就存储了N个消重字典,初始状态下,消重字典中未存储任何信息,随着待存储文档的数目不断增加,消重字典中存储信息也不断进行更新。具体地,本申请实施例二这里提出的消重字典的一种存储形式可以参见下述表2:
表2
S24,如果消重字典中已经存储有与计算得到的属性相关值相同的数值,则根据在消重字典中存储的与确定的属性相关值对应的文档标识信息,在正排表索引文件中与该文档标识信息对应的存储域中查找对应的偏移量和属性值数目,并将查找到的偏移量和属性值数目作为该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中。
具体地,以表2为例,假设对文档标识为0的文档的指定属性字段C中包含的属性值计算出的哈希值AA,以及文档标识“0”在消重字典中已经映射存储,此时若有另外一个待存储的文档标识为M的文档M,对文档M的指定属性字段C中包含的属性值采用哈希运算,假设计算出的哈希值也是AA,则以AA作为键值key,则由于在消重字典中已经存储了“AA”,所以直接在消重字典中获得“AA”对应的文档标识信息“0”,然后在正排表索引文件中对应文档0的存储域中查找对应文档0的偏移量和属性值数目,例如,这里以图6为例,在正排表索引文件中对应文档0的存储域中,查找到文档0的指定属性字段C中的属性值在正排表数据文件中的起始存储地址的偏移量和属性值数目为“0/6”,进而将查找到的“0/6”写入到正排表索引文件中对应文档标识M的存储域中。这样也可以在文档0和2的指定属性字段C中均具有相同属性值的情况下,在正排表数据文件中仅对文档0和2中的属性字段C中的属性值存储一次,而避免了像现有技术一样针对文档0和2需要在正排表数据文件中重复存储两次相同的属性值,从而减少了正排表对内存资源的占用,进而提高了后续搜索引擎的速率。此外在正排表索引文件中对应文档0和2的存储域中存储的指向数据文件的属性值起始位置的偏移量均是相同的,因此为后续的文档属性信息索引提供了可实现的基础。
S25,如果消重字典中没有存储与计算得到的属性相关值相同的数值,则计算并确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目。
S26,将该待存储的文档的标识信息与确定的属性相关值映射存储在所述消重字典中,以对消重字典继续学习,供后续进入的待存储文档使用;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。在结束该写入操作以后,执行S27。其中,S27的具体实施过程请参见上述步骤507,这里不再赘述。
S28,判断所有待存储的文档是否都已经存储完毕,如果还有未存储的文档,则返回继续执行S22,反之则结束所有操作。
相应地,本申请实施例二这里还提出一种基于垂直搜索引擎的信息存储装置,其具体结构组成也如上述图7所示,包括:
属性相关值确定单元,用于针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值。
判断单元,用于根据属性相关值确定单元确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值和文档标识信息。
执行单元,用于在判断单元判断出消重字典中存储有所述属性相关值时,根据在消重字典中存储的与确定的属性相关值对应的文档标识信息,在正排表索引文件中与该文档标识信息对应的存储域中查找对应的偏移量和属性值数目;将查找到的偏移量和属性值数目作为该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;以及在判断单元判断出消重字典中未存储有所述属性相关值时,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将该待存储的文档的标识信息与确定的所述属性相关值映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
实施例三
上述实施例一和实施例二提出的基于垂直搜索引擎的信息存储方法,是针对所有待存储的文档所执行的全量存储操作,即针对一个待存储文档所做的全量存储操作。但是在垂直搜索引擎的信息存储过程中,文档的属性并不是一成不变的,在一定时间内,每个已经存储的文档的属性可能会发生变化,即对于已经存储的文档,在指定的属性字段,其属性值可能会发生变化,例如已经存储的某个文档的指定属性字段对应的属性值增加或者减少,或者有部分属性值与已经存储的属性值不相同,此时需要对变化的文档做出相应的更新,即对有变化的文档执行增量存储操作。基于此,本实施例三这里提出一种基于垂直搜索引擎的信息存储方法,如图8所示,具体实施过程如下:
步骤81,在对应文档一个指定属性字段的正排表索引文件中,当至少两个文档的标识信息分别对应的存储域中存储的偏移量和属性值数目相同时,判断至少两个文档中的一个文档的该指定属性字段中包含的属性值是否发生变化。如果判断结果为是,执行步骤82,如果判断结果为否,则结束操作。
步骤82,如果其中一个文档的指定属性字段中包含的属性值发生变化,则根据该文档的标识信息对应的存储域中存储的偏移量和属性值数目,在该指定属性字段的正排表数据文件中查找对应该文档的相应数目的属性值。
步骤83,将查找到的属性值重新写入到正排表数据文件中的空白区域,并将写入的属性值更新为变化后的属性值。然后修改该文档的标识信息对应的存储域中存储的偏移量和属性值数目与重新写入的区域和更新后的属性值数目对应。其中,将查找到的属性值重新写入到正排表数据文件中的空白区域,可以按照顺序写入,即在正排表数据文件的最后一行已有内容之后的空白区域开始写入,也可以直接设置一段空白的存储区域,用于存储发生更新的文档的属性值。
具体地,本申请实施例三这里以上述图6所示的正排表存储结构为例,文档标识为0和文档标识为2的两个文档,在图6中的正排表索引文件中的相应的存储域中存储的偏移量和属性值数目均相同,为“0/6”,若某一时刻,文档2的该指定属性字段C中包含的属性值有更新,假设其属性值数目发生变化,由6变为7,并且变化后的属性值有一部分(例如3个)和已经存储的属性值相同,其他部分属性值不再相同。此时,根据文档2在正排表索引文件中存储域中存储的“0/6”,在正排表数据文件中查找6个属性值,分别为:0、1、50032886、50032886、50041278和50048524。将查找到的6个属性值按照顺序重新写入到正排表数据文件中的空白区域(偏移量12指向的空白区域,即50000178内容的下一行),并将写入后的属性值更新为变化后的属性值:0、1、50032886、50032886、50041234、50045678和50049999。然后将文档2在正排表索引文件的存储域中存储的偏移量和属性值数目““0/6”修改为“12/7”。
相应地,基于上述方法,本申请实施例三这里还提出一种基于垂直搜索引擎的信息存储装置,其结构组成如图9所示,包括:
判断单元901,用于在对应文档一个指定属性字段的正排表索引文件中,当至少两个文档的标识信息分别对应的存储域中存储的偏移量和属性值数目相同时,判断所述至少两个文档中的一个文档的该指定属性字段中包含的属性值是否发生变化。
查找单元902,用于在判断单元901判断出至少一个文档的该指定属性字段中包含的属性值发生变化时,则根据该文档的标识信息对应的存储域中存储的偏移量和属性值数目,在该指定属性字段的正排表数据文件中查找对应该文档的相应数目的属性值;
修改单元903,用于将查找单元902查找到的属性值重新写入到所述数据文件中的空白区域,并将写入的属性值更新为变化后的属性值;以及修改该文档的标识信息对应的存储域中存储的偏移量和属性值数目与重新写入的区域和更新后的属性值数目对应。
实施例四
进一步地,基于上述实施例一~实施例三中提出的一种基于垂直搜索引擎的信息存储方法,本申请实施例四这里相应地提出一种基于垂直搜索引擎的信息查询方法,如图10所示,具体过程如下:
步骤101,将用户输入的搜索词作拆分处理,根据拆分后的搜索词基于倒排表进行倒排索引,即根据拆分后的搜索词,分别在字典中查找与该拆分后的各搜索词对应的词典信息,然后根据查找到的词典信息在倒排表中查询,得到拆分后的搜索词所出现在的至少一个文档的标识信息。本申请实施例四这里以用户输入的搜索词为dell computer为例,详细阐述基于垂直搜索引擎的信息查询方法。将“dell computer”分成“dell”和“computer”,在字典里分别查询dell和computer,得到与dell和computer分别对应的倒排表,即对应dell的文档标识信息为0,对应computer的文档标识信息为0和2。
步骤102,根据步骤101中得到的每个文档的标识信息,分别基于正排表进行正排索引,得到每个文档分别对应的属性值。
具体地,可以根据得到的每个文档的标信息,在正排表索引文件对应的存储域询该文档标识对应的例如在上述步骤101中提到的对应分词computer的文档0和文档2,在正排表索引文件的存储域中依次查找对应文档标识的存储信息,例如参照图6所示的正排表结构,文档0在正排表索引文件存储域中存储的信息是“0/6”,即文档0的属性值在正排表数据文件中存储的起始地址偏移量是0,属性值数目是6个,其属性值分别为0、1、50032886、50032886、50041278和50048524;同理,基于图6所示的正排表结构,文档2在正排表数据文件中存储的属性值与文档0相同,也是0、1、50032886、50032886、50041278和50048524。
步骤103,按照预先设定的排序算法,根据在正排表中得到的每个文档的属性值,计算每个文档的排序分值,根据计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次向用户返回各文档的摘要信息。
具体地,例如上述文档0和文档2,将查找到的6个属性值:0,1,50032886,50032888,50041278和50048524,使用排序算法,分别对文档标识信息为0和2的文档进行排序分值计算,得到对应文档的排序分值,根据计算得到的排序分值对两个文档进行排序,由于文档0、2的属性值相同,所以计算出的排序分值也是相同的,因此文档0、2的排序顺序可以不分先后,则可以根据排序后的顺序依次向用户返回文档0和2的摘要信息,也可以根据排序后的顺序依次向用户返回文档2和0的摘要信息。
相应地,本申请实施例四这里还提出一种基于垂直搜索引擎进行信息查询的装置,其结构组成如图11所示,包括:
分词处理单元111,用于将用户输入的搜索词作拆分处理,根据拆分后的搜索词基于倒排表进行倒排索引,得到拆分后的搜索词所出现在的至少一个文档的标识信息。
属性值确定单元112,用于针对分词处理单元111得到的每个文档的标识信息,分别基于正排表进行正排索引,得到每个文档分别对应的属性值。
排序分值计算单元113,用于按照预设的排序算法,根据属性值确定单元112在正排表中得到的每个文档的属性值,计算每个文档的排序分值。
摘要信息返回单元114,用于根据排序分值计算单元113计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次返回各文档的摘要信息。
本申请上述各实施例中提出的基于垂直搜索引擎的信息存储、查询方法及其装置,采用消重技术减少垂直搜索引擎的索引***中正排表/属性对内存的占用,适用于各种类型的待存储文档,较佳地,针对定长多值类型、变长多值类型以及字符串类型的待存储文档,使用本申请实施例这里提出的技术方案对文档进行存储,能够较好的节省内存资源的占用,提高用户使用垂直搜索引擎查询相关信息的速率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于垂直搜索引擎的信息存储方法,其特征在于,包括:
针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;
根据确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值、该指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;
如果判断结果为是,将在消重字典中存储的与确定的属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;
如果判断结果为否,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;
将确定的所述属性相关值、起始存储位置的偏移量和属性值数目映射存储在所述消重字典中;并
将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
2.如权利要求1所述的方法,其特征在于,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值,包括:
对该待存储文档的指定属性字段中包含的属性值,执行哈希运算;
将运算得到的结果作为该待存储文档的指定属性字段的属性相关值。
3.一种基于垂直搜索引擎的信息存储方法,其特征在于,包括:
针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;
根据确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值和文档标识信息;
如果判断结果为是,根据在消重字典中存储的与确定的属性相关值对应的文档标识信息,在正排表索引文件中与该文档标识信息对应的存储域中查找对应的偏移量和属性值数目;
将查找到的偏移量和属性值数目作为该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;
如果判断结果为否,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;
将该待存储的文档的标识信息与确定的所述属性相关值映射存储在所述消重字典中;并
将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
4.一种基于垂直搜索引擎的信息存储方法,其特征在于,包括:
在对应文档一个指定属性字段的正排表索引文件中,当至少两个文档的标识信息分别对应的存储域中存储的偏移量和属性值数目相同时,判断所述至少两个文档中的一个文档的该指定属性字段中包含的属性值是否发生变化;
若发生变化,则根据该文档的标识信息对应的存储域中存储的偏移量和属性值数目,在该指定属性字段的正排表数据文件中查找对应该文档的相应数目的属性值;并
将查找到的属性值重新写入到所述数据文件中的空白区域,并将写入的属性值更新为变化后的属性值;以及
修改该文档的标识信息对应的存储域中存储的偏移量和属性值数目与重新写入的区域和更新后的属性值数目对应。
5.一种基于1~4任一权利要求所述的信息存储方法进行信息查询的方法,其特征在于,包括:
将用户输入的搜索词作拆分处理,根据拆分后的搜索词基于倒排表进行倒排索引,得到拆分后的搜索词所出现在的至少一个文档的标识信息;
针对得到的每个文档的标识信息,分别基于正排表进行正排索引,得到每个文档分别对应的属性值;
按照预设的排序算法,根据在正排表中得到的每个文档的属性值,计算每个文档的排序分值;
根据计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次返回各文档的摘要信息。
6.一种基于垂直搜索引擎的信息存储装置,其特征在于,包括:
属性相关值确定单元,用于针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;
判断单元,用于根据属性相关值确定单元确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值、该指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;
执行单元,用于在判断单元判断出消重字典中存储有所述属性相关值时,将在消重字典中存储的与属性相关值确定单元确定的属性相关值对应的起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;以及在判断单元判断出消重字典中未存储有所述属性相关值时,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将确定的所述属性相关值、起始存储位置的偏移量和属性值数目映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
7.如权利要求6所述的装置,其特征在于,所述属性相关值确定单元,具体用于对该待存储文档的指定属性字段中包含的属性值,执行哈希运算;将运算得到的结果作为该待存储文档的指定属性字段的属性相关值。
8.一种基于垂直搜索引擎的信息存储装置,其特征在于,包括:
属性相关值确定单元,用于针对每个待存储的文档,根据该待存储文档的指定属性字段中包含的属性值,确定该待存储文档的指定属性字段的属性相关值;
判断单元,用于根据属性相关值确定单元确定的属性相关值,判断在消重字典中是否存储有与所述属性相关值相同的数值,所述消重字典中映射存储有已存储的各文档的该指定属性字段的属性相关值和文档标识信息;
执行单元,用于在判断单元判断出消重字典中存储有所述属性相关值时,根据在消重字典中存储的与确定的属性相关值对应的文档标识信息,在正排表索引文件中与该文档标识信息对应的存储域中查找对应的偏移量和属性值数目;将查找到的偏移量和属性值数目作为该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目,写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中;以及在判断单元判断出消重字典中未存储有所述属性相关值时,确定该待存储文档的指定属性字段中包含的属性值在正排表数据文件中起始存储位置的偏移量和属性值数目;将该待存储的文档的标识信息与确定的所述属性相关值映射存储在所述消重字典中;并将确定的偏移量和属性值数目写入到正排表索引文件中与该待存储文档的标识信息对应的存储域中,并在正排表数据文件中该偏移量指向的位置开始写入该待存储文档的指定属性字段中包含的属性值。
9.一种基于垂直搜索引擎的信息存储装置,其特征在于,包括:
判断单元,用于在对应文档一个指定属性字段的正排表索引文件中,当至少两个文档的标识信息分别对应的存储域中存储的偏移量和属性值数目相同时,判断所述至少两个文档中的一个文档的该指定属性字段中包含的属性值是否发生变化;
查找单元,用于在判断单元判断出至少一个文档的该指定属性字段中包含的属性值发生变化时,根据该文档的标识信息对应的存储域中存储的偏移量和属性值数目,在该指定属性字段的正排表数据文件中查找对应该文档的相应数目的属性值;
修改单元,用于将查找单元查找到的属性值重新写入到所述数据文件中的空白区域,并将写入的属性值更新为变化后的属性值;以及修改该文档的标识信息对应的存储域中存储的偏移量和属性值数目与重新写入的区域和更新后的属性值数目对应。
10.一种基于6~9任一权利要求所述的信息存储装置进行信息查询的装置,其特征在于,包括:
分词处理单元,用于将用户输入的搜索词作拆分处理,根据拆分后的搜索词基于倒排表进行倒排索引,得到拆分后的搜索词所出现在的至少一个文档的标识信息;
属性值确定单元,用于针对分词处理单元得到的每个文档的标识信息,分别基于正排表进行正排索引,得到每个文档分别对应的属性值;
排序分值计算单元,用于按照预设的排序算法,根据属性值确定单元在正排表中得到的每个文档的属性值,计算每个文档的排序分值;
摘要信息返回单元,用于根据排序分值计算单元计算得到的每个文档的排序分值,将各文档进行排序处理,根据排序后的顺序,依次返回各文档的摘要信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110408495.8A CN103164408B (zh) | 2011-12-09 | 2011-12-09 | 基于垂直搜索引擎的信息存储、查询方法及其装置 |
HK13109934.5A HK1182790A1 (zh) | 2011-12-09 | 2013-08-26 | 基於垂直搜索引擎的信息存儲、查詢方法及其裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110408495.8A CN103164408B (zh) | 2011-12-09 | 2011-12-09 | 基于垂直搜索引擎的信息存储、查询方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164408A true CN103164408A (zh) | 2013-06-19 |
CN103164408B CN103164408B (zh) | 2016-03-30 |
Family
ID=48587504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110408495.8A Active CN103164408B (zh) | 2011-12-09 | 2011-12-09 | 基于垂直搜索引擎的信息存储、查询方法及其装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103164408B (zh) |
HK (1) | HK1182790A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744794A (zh) * | 2014-02-10 | 2014-04-23 | 武汉英泰斯特电子技术有限公司 | 数据存储的方法及装置 |
CN104346458A (zh) * | 2014-10-31 | 2015-02-11 | 易准科技发展(上海)有限公司 | 数据存储方法和存储设备 |
CN104462104A (zh) * | 2013-09-16 | 2015-03-25 | 华为软件技术有限公司 | 过滤方法和服务器 |
CN105956085A (zh) * | 2016-04-29 | 2016-09-21 | 合网络技术(北京)有限公司 | 一种倒排索引的构建方法和装置、检索方法和装置 |
CN107918618A (zh) * | 2016-10-10 | 2018-04-17 | 腾讯科技(北京)有限公司 | 数据处理方法及装置 |
CN108733664A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种文件归类方法及装置 |
CN110020063A (zh) * | 2017-07-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 垂直搜索方法和*** |
CN110427538A (zh) * | 2019-07-30 | 2019-11-08 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、存储方法、装置及电子设备 |
CN110765756A (zh) * | 2019-10-29 | 2020-02-07 | 北京齐尔布莱特科技有限公司 | 一种文本处理方法、装置、计算设备及介质 |
CN110866085A (zh) * | 2019-11-04 | 2020-03-06 | 北京百分点信息科技有限公司 | 数据反馈方法与装置 |
CN111259003A (zh) * | 2020-01-07 | 2020-06-09 | 广州虎牙科技有限公司 | 一种数据库建立方法及装置 |
CN111858667A (zh) * | 2020-06-29 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种业务执行方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075252A (zh) * | 2007-06-21 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种网络搜索方法及*** |
US20080016121A1 (en) * | 2006-07-13 | 2008-01-17 | Xiv Ltd. | Method, an apparatus and a system for managing a snapshot storage pool |
CN101131704A (zh) * | 2006-08-23 | 2008-02-27 | 国际商业机器公司 | 用于内容的位置表示的装置和方法 |
CN101477568A (zh) * | 2009-02-12 | 2009-07-08 | 清华大学 | 一种结构化数据和非结构化数据综合检索的方法 |
-
2011
- 2011-12-09 CN CN201110408495.8A patent/CN103164408B/zh active Active
-
2013
- 2013-08-26 HK HK13109934.5A patent/HK1182790A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016121A1 (en) * | 2006-07-13 | 2008-01-17 | Xiv Ltd. | Method, an apparatus and a system for managing a snapshot storage pool |
CN101131704A (zh) * | 2006-08-23 | 2008-02-27 | 国际商业机器公司 | 用于内容的位置表示的装置和方法 |
CN101075252A (zh) * | 2007-06-21 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种网络搜索方法及*** |
CN101477568A (zh) * | 2009-02-12 | 2009-07-08 | 清华大学 | 一种结构化数据和非结构化数据综合检索的方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462104A (zh) * | 2013-09-16 | 2015-03-25 | 华为软件技术有限公司 | 过滤方法和服务器 |
CN103744794A (zh) * | 2014-02-10 | 2014-04-23 | 武汉英泰斯特电子技术有限公司 | 数据存储的方法及装置 |
CN104346458A (zh) * | 2014-10-31 | 2015-02-11 | 易准科技发展(上海)有限公司 | 数据存储方法和存储设备 |
WO2016066109A1 (zh) * | 2014-10-31 | 2016-05-06 | 阿里巴巴(中国)有限公司 | 数据存储方法和存储设备 |
CN104346458B (zh) * | 2014-10-31 | 2018-05-18 | 阿里巴巴(中国)有限公司 | 数据存储方法和存储设备 |
CN105956085A (zh) * | 2016-04-29 | 2016-09-21 | 合网络技术(北京)有限公司 | 一种倒排索引的构建方法和装置、检索方法和装置 |
CN105956085B (zh) * | 2016-04-29 | 2019-08-27 | 优酷网络技术(北京)有限公司 | 一种倒排索引的构建方法和装置、检索方法和装置 |
CN107918618A (zh) * | 2016-10-10 | 2018-04-17 | 腾讯科技(北京)有限公司 | 数据处理方法及装置 |
CN107918618B (zh) * | 2016-10-10 | 2023-03-24 | 腾讯科技(北京)有限公司 | 数据处理方法及装置 |
CN108733664B (zh) * | 2017-04-13 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 一种文件归类方法及装置 |
CN108733664A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种文件归类方法及装置 |
CN110020063A (zh) * | 2017-07-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 垂直搜索方法和*** |
CN110427538B (zh) * | 2019-07-30 | 2023-01-20 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、存储方法、装置及电子设备 |
CN110427538A (zh) * | 2019-07-30 | 2019-11-08 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、存储方法、装置及电子设备 |
CN110765756A (zh) * | 2019-10-29 | 2020-02-07 | 北京齐尔布莱特科技有限公司 | 一种文本处理方法、装置、计算设备及介质 |
CN110765756B (zh) * | 2019-10-29 | 2023-12-01 | 北京齐尔布莱特科技有限公司 | 一种文本处理方法、装置、计算设备及介质 |
CN110866085A (zh) * | 2019-11-04 | 2020-03-06 | 北京百分点信息科技有限公司 | 数据反馈方法与装置 |
CN111259003A (zh) * | 2020-01-07 | 2020-06-09 | 广州虎牙科技有限公司 | 一种数据库建立方法及装置 |
CN111858667A (zh) * | 2020-06-29 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种业务执行方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
HK1182790A1 (zh) | 2013-12-06 |
CN103164408B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164408B (zh) | 基于垂直搜索引擎的信息存储、查询方法及其装置 | |
US11030201B2 (en) | Preliminary ranker for scoring matching documents | |
CN107710201B (zh) | 存储数据和从位向量搜索索引取回数据 | |
CN107851108B (zh) | 使用位向量搜索索引的匹配文档 | |
US10565198B2 (en) | Bit vector search index using shards | |
CN108475266B (zh) | 用来移除匹配文档的匹配修复 | |
US20230038616A1 (en) | Reducing matching documents for a search query | |
JP6165955B1 (ja) | 検索クエリに応答してホワイトリストとブラックリストを使用し画像とコンテンツをマッチングする方法及びシステム | |
CN105224528A (zh) | 基于图计算的大数据处理方法和装置 | |
Skovsgaard et al. | Finding top-k relevant groups of spatial web objects | |
US10733164B2 (en) | Updating a bit vector search index | |
CN104765782A (zh) | 一种索引排序更新方法及装置 | |
CN109313641B (zh) | 信息处理***和方法以及程序 | |
EP3314467B1 (en) | Bit vector search index | |
US20160378804A1 (en) | Bit vector row trimming and augmentation for matching documents | |
JP6221593B2 (ja) | データ管理方法、データ管理プログラム及びデータ管理装置 | |
KR20170124536A (ko) | 전자 디바이스에서 수신된 입력 스트링에 기반한 하나 이상의 다수 단어 후보들을 제안하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1182790 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1182790 Country of ref document: HK |