CN114461751A - 倒排索引表构建方法、资源检索方法、设备及存储介质 - Google Patents
倒排索引表构建方法、资源检索方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114461751A CN114461751A CN202210203525.XA CN202210203525A CN114461751A CN 114461751 A CN114461751 A CN 114461751A CN 202210203525 A CN202210203525 A CN 202210203525A CN 114461751 A CN114461751 A CN 114461751A
- Authority
- CN
- China
- Prior art keywords
- sub
- index table
- orientation
- value pair
- formula
- 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.)
- Pending
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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种倒排索表引构建方法、资源检索方法、设备及存储介质。倒排索引表构建方法包括:获取资源对应的子检出公式;基于子检出公式和对应的资源的标识构建第一子索引表,第一子索引表的表项包括子检出公式和对应的资源的标识;基于定向条件构建第一定向键值对;基于第一定向键值对和第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,第二子索引表的表项包括定向键值和对应的定向条件所属的子检出公式。通过构建第一子索引表和第二子索引表构建倒排索引表,使得倒排索引表呈现二层结构,而不是建立第一定向键值对与资源的标识对应关系的一层倒排索引表,避免了常用键值对对应大量资源的标识造成的检索效率较低的问题。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种倒排索引表构建方法、资源检索方法、设备及存储介质。
背景技术
倒排索引查找方法是基于倒排索引表进行资源的查找方法。相关技术中,倒排索引表中的每一表项均包括一个定向键值对和检出条件包括前述定向键值对对应的定向条件的资源的标识,其中某些资源对应的检出条件包括多个定向条件,并且多个定向条件之间为求与关系,因此采用倒叙。
在资源查找过程中,需要根据检索语句包括的定向条件确定对应的定向键值对,随后从倒排索引表中检索各个定向键值对对应的资源的标识;随后,再对基于各个定向键值对检索出的资源的标识确定最终可检出资源的标识。
采用基于前述倒排索引表的倒排索引查找方法,在资源数量很大的情况下,倒排索引表中的某些常用定向键值对对应大量资源的标识(也就是某些常用的查找项中包括大量资源的标识),使得检索效率较低。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种倒排索表引构建方法、资源检索方法、设备及存储介质。
第一方面,本公开实施例提供一种倒排索引表构建方法,包括:
获取资源对应的检出公式,其中所述检出公式包括至少一个子检出公式,所述子检出公式包括至少一个定向条件,所述子检出公式包括的所述定向条件之间为求与关系;
基于所述子检出公式,以及所述子检出公式对应的资源的标识,构建第一子索引表,其中所述第一子索引表的表项包括所述子检出公式和所述子检出公式对应的资源的标识;
基于所述定向条件构建第一定向键值对;
基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中所述第二子索引表的表项包括所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;
采用所述第一子索引表和所述第二子索引表构成用于倒排检索的倒排索引表。
第二方面,本公开实施例提供一种资源检索方法,基于倒排索引表实现资源的检索,其中所述倒排索引表包括第一子索引表和第二子索引表,所述第一子索引表的表项包括子检出公式和所述子检出公式对应的资源的标识,所述第二子索引表的表项包括第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;所述方法包括:
获取检索语句,所述检索语句包括至少一个检索条件;
基于所述检索条件构建第二定向键值对;
基于所述第二定向键值对,查找所述第二子索引表,确定与所述第二定向键值对对应的子检出公式;
判断所述子检出公式是否与所述检索语句匹配;
在所述子检出公式与所述检索语句匹配的情况下,基于所述子检出公式查找所述倒排索引表中的第一子索引表,确定与所述子检出公式对应的资源的标识作为待检出资源的标识。
第三方面,本公开实施例提供一种计算设备,包括处理器和存储器,所述存储器用于存储可执行指令,所述可执行指令使所述处理器执行以下操作:
获取资源对应的检出公式,其中所述检出公式包括至少一个子检出公式,所述子检出公式包括至少一个定向条件,所述子检出公式包括的所述定向条件之间为求与关系;
基于所述子检出公式,以及所述子检出公式对应的资源的标识,构建第一子索引表,其中所述第一子索引表的表项包括所述子检出公式和所述子检出公式对应的资源的标识;
基于所述定向条件构建第一定向键值对;
基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中所述第二子索引表的表项包括所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;
采用所述第一子索引表和所述第二子索引表构成用于倒排检索的倒排索引表。
第四方面,本公开实施例提供一种计算设备,包括处理器和存储器,所述存储器用于存储可执行指令和倒排索引表,所述倒排索引表包括第一子索引表和第二子索引表,所述第一子索引表的表项包括子检出公式和所述子检出公式对应的资源的标识,所述第二子索引表的表项包括第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;所述可执行指令使所述处理器执行以下操作:
获取检索语句,所述检索语句包括至少一个检索条件;
基于所述检索条件构建第二定向键值对;
基于所述第二定向键值对,查找所述第二子索引表,确定与所述第二定向键值对对应的子检出公式;
判断所述子检出公式是否与所述检索语句匹配;
在所述子检出公式与所述检索语句匹配的情况下,基于所述子检出公式查找所述倒排索引表中的第一子索引表,确定与所述子检出公式对应的资源的标识作为待检出资源的标识。。
第五方面,本公开实施例提供一种计算机可读存储介质,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述第一方面所述的倒排索引表构建方法,或者使处理器实现上述第二方面所述的资源检索方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
采用本公开实施例提供的倒排索引表构建方法,在获取资源对应的检出公式后,根据检出公式中的子检出公式和子检出公式对应的资源的标识,构建第一子索引表;以及,根据定向条件构建第一定向键值对,并基于第一定向键值对和第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表。随后采用第一子索引表和第二子索引表构建用于倒排检索的倒排索引表。通过构建第一子索引表和第二子索引表,并利用第一子索引表和第二子索引表构建倒排索引表,使得倒排索引表呈现二层结构,而不是直接建立第一定向键值对与资源的标识对应关系的一层倒排索引表,避免了常用键值对对应大量资源的标识造成的检索效率较低的问题。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例提供的倒排索引表构建方法流程图;
图2是本公开一些实施例提供的倒排索引表的构建方法流程图;
图3是本公开实施例提供的资源检索方法的流程图;
图4示出了本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
图1是本公开实施例提供的倒排索引表构建方法流程图。如图1所示,本公开实施例提供的倒排索引表构建方法包括步骤S110-S150。
应当注意的是,本公开实施例提供的倒排索引表构建方法由服务器执行。
步骤S110:获取资源对应的检出公式,其中检出公式包括至少一个子检出公式,子检出公式包括至少一个定向条件,子检出公式包括的定向条件之间为求与关系。
本公开实施例中的资源是基于检索条件可能检出的资源。例如,在需要根据用户的属性条件确定向用户推送的广告的情况下,资源可以是广告。再例如,在需要根据用户的偏好条件确定向用户推送的电子书、视频或者歌曲的情况下,资源可以是电子书、视频或者歌曲。
资源对应的检出公式是预先设定的,可以检出此资源的检索公式。例如,针对某一资源R[1],对应的检出公式可以是(age∈{3}^state∈{NY})v(state∈{CA}^gender∈{M})。
本公开实施例中,每个资源对应的检出公式均可以包括至少一个子检出公式。例如,针对前述举例的检出公式,其包括的子检出公式为(age∈{3}^state∈{NY})和(state∈{CA}^gender∈{M})。各个子检出公式之间为或关系(或关系采用v)表示,也就是说,只要检索公式与检出公式中的一个子检出公式相同,则通过检索公式就可以检出资源R[1]。
本公开实施例中,每个子检出公式均包括至少一个定向条件。例如,针对前述的子检出公式(age∈{3}^state∈{NY}),其包括的定向条件为age∈{3}和state∈{NY}。每个子检出公式包括的定向条件之间为与关系(与关系采用^)。实际应用中,在检索语句包括各个定向条件,并且各个定向条件之间可以为与关系时,则可以利用检索语句检索到子检出公式对应的资源。
定向条件是组成子检出公式所需要的最小组成单元,其包括属性键、键值以及属性键和键值之间的包含与否标识。例如,针对前述的定向条件age∈{3},其属性键为“age”,键值为“3”,属性键和键值之间的关系是包含关系,包含关系采用包含与否标识“∈”(也就是包含标识)表示。
步骤S120:基于子检出公式,以及子检出公式对应的资源的标识,构建第一子索引表,其中第一子索引表的表项包括子检出公式和子检出公式对应的资源的标识。
本公开实施例中,第一子索引表是专门用于存储子检出公式和子检出公式对应的资源的标识的索引表。第一子索引表中每一个表项均包括一个子检出公式,以及此子检出公式可以检出的资源的标识。
基于子检出公式衱子检出公式对应的资源的标识,构建第一子索引表,即是建立第一子索引表中表项中的对应关系。
以下以一个实际应用对如何基于子检出公式以及子检出公式对应的资源的标识构建第一子索引表进行说明。
在一个实际应用中,资源包括R[1]-R[7],各个资源对应的检出公式如下。
R[1]:(age∈{3}^state∈{NY})v(state∈{CA}^gender∈{M});
R[4]:(age∈{3;4})v(state∈{CA}^gender∈{M});
R[7]:(age∈{3}^state∈{NY})v(state∈{CA}^gender∈{F})。
为了后期方便表示起见,子检出公式(age∈{3}^state∈{NY})、(age∈{3}^state∈{F}),(state∈{CA}^gender∈{M}),(age∈{3;4},(state∈{CA}^gender∈{F})分别采用c[1]至c[7]表示。
分别对各个子检出公式进行分析,确定其可以检出的资源的标识。例如,针对子检出公式c[1],遍历前述资源对应的检出公式,其可以检出资源包括R[1]、R[6]和R[7]。基于此,在第一子索引表中构建的一个表项为包括(age∈{3}^state∈{NY})作为主键值,采用R[1]、R[6]和R[7]作为其他键值的表项。
基于前述方法,构建的第一子索引表包括的表项包括:c[1]-->R[1],R[6],R[7];c[2]-->R[2];c[3]-->R[3];c[4]-->R[1],R[4],R[6];c[5]-->R[4],R[5];c[6]-->R[2],R[5],R[6];c[7]-->R[3],R[7]。
步骤S130:基于定向条件构建第一定向键值对。
第一定向键值对是用于标识某一定向条件主要信息的键值对。
在本公开的一些实施例中,第一定向键值对可以包括定向条件中的属性键和键值。例如,针对定向条件age∈{3},其属性键为“age”,键值为“3”,对应的第一定向键值对可以为(age,3)。
在本公开的另外一些实施例中,定向键值除了可以包括定向条件中的属性值和键值外,还可以包括定向条件的包含与否关系标识,例如,针对定向条件age∈{3},其包含与否关系标识为“∈”,因此对应的第一定向键值对可以为(age,3,∈)。类似的,针对前述的定向条件其对应的第一定向键值对可以为
还应当注意的是,基于各个定向条件可能生成相同的第一定向键值对,此时可以对各个定向键值进行合并处理。
步骤S140:基于第一定向键值对,以及第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中第二子索引表的表项包括第一定向键值对,以及第一定向键值对对应的定向条件所属的子检出公式。
第二子索引表是用于存储第一定向键值对,以及与第一定向键值对对应的定向条件所属的检出公式之间对应的关系的索引表。具体的,第二子索引表中的每一个表项分别存储一个第一定向键值对,以及前述第一定向键值对应的定向条件所属的子检出公式。
例如,在本公开的一些实施例中,针对前述的第一定向键值对(age,3),在第二子索引表中的对应表项可以为(age,3)->{(c[1],c[2],c[3]}。
步骤S150:采用第一子索引表和第二子索引表构成用于倒排检索的倒排索引表。
本公开实施例中,采用第一子索引表和第二子索引表构建用于倒排检索的倒排索引表,并不是将第一子索引表和第二子索引表进行合并,而是将第一子索引表和第二子索引表分别进行存储,以在后续进行倒排检索时按照特定的检索方法使用第一子索引表和第二子索引表。
采用本公开实施例提供的倒排索引表构建方法,在获取资源对应的检出公式后,执行如下两个操作:(1)根据检出公式中的子检出公式和子检出公式对应的资源的标识,构建第一子索引表;(2)根据定向条件构建第一定向键值对,并基于第一定向键值对和第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表;随后采用第一子索引表和第二子索引表构建用于倒排检索的倒排索引表。
采用本公开实施例提供的倒排索引表的构建方法,通过构建第一子索引表和第二子索引表,并利用第一子索引表和第二子索引表构建倒排索引表,使得倒排索引表呈现二层结构,而不是直接建立第一定向键值对与资源的标识对应关系的一层倒排索引表,避免了常用键值对对应大量资源的标识造成的检索效率较低的问题。
采用如何使用本公开实施例方法构建的倒排索引表进行资源查找在后文中再做分析。
如前,在本公开的一些实施例中,基于定向条件构建第一定向键值对为:基于定向条件中的属性键和键值构建第一定向键值对,第一定向键值对并没有包括包含与否关系标识,例如第一定向键值对为(age,3),而不包括“∈”。
可选的,在第一定向键值对不包括包含与否关系标识的情况下,前述步骤S140具体可以包括:基于第一定向键值对,第一定向键值对对应的定向条件包括的包含与否关系标识,以及第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表。通过采用前述步骤构建检索表,可以使得第二子索引表的表项包括包含与否关系标识。
以前述的方法为例,结合前文的举例,构建的第二子索引表包括的表项为:(age,3)->[(c[1],∈),(c[2],∈),(c[3],∈)],(state,NY)->[(c[1],∈)],(gender,F)->[(c[2],∈),(c[7],∈)],(gender,M)->[(c[3],∈),(c[4],∈)],(c[4],∈),(c[7],∈)],(age,3)->[(c[5],∈)],(age,4)->和
在第二子索引表中包括包含与否关系标识的情况下,在采用第一子索引表和第二所以表构建的倒排索引表进行咨询查找时,可以使得查询效率更高。具体如何可以使得查询效率更高,请参见后文表述。
图2是本公开一些实施例提供的倒排索引表的构建方法流程图,如图2所示,在本公开的一些实施例中,倒排索引表的构建方法包括步骤S210-S270。
步骤S210:获取资源对应的检出公式,其中检出公式包括至少一个子检出公式,子检出公式包括至少一个定向条件,子检出公式包括的定向条件之间为求与关系。
步骤S220:基于子检出公式,以及子检出公式对应的资源的标识,构建第一子索引表,其中第一子索引表的表项包括子检出公式和子检出公式对应的资源的标识。
步骤S230:基于定向条件中的属性键和键值构建第一定向键值对。
步骤S240:基于第一定向键值对,第一定向键值对对应的定向条件包括的包含与否关系标识,以及第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表。
本公开实施例中的步骤S210-S240中与前述实施例中的步骤S110-S140相同,具体可以参见前文表述,此处不再复述。
步骤S250:判断是否第一子检出公式;若是,执行步骤S260。
步骤S260:基于第一子检出公式包括的定向条件,在第二子索引表中添加特殊表项,特殊表项包括特殊属性键、第一子检出公式和包含关系标识。
本公开实施例中,特殊表项的特殊属性键可以采用Z表示。对应的,特殊表项可以表示为Z->[(c[6],∈)]。特殊表项是为了满足特殊的检索语句而设置的表项,特殊的检索语句是不包括资源包含的任一定向条件的检索语句。在一些情况下,检索语句可能与第二子索引表中除特殊表项以外的其他表项均不匹配,但是检索语句应当检出第一子检出公式对应的资源的标识。在不设置特殊表项的情况下,无法实现相应资源的检索,而添加特殊表项后可以实现对相应资源的检索。具体的,如何利用特殊表项实现相应资源的检索在后文中再做具体的分析。
当然,在其他实施例中,也可以不在第二子索引表项中设置前述的特殊表项。但是,在此情况下,为了避免利用检索语句进行资源检索时的错误,检索语句中包括的定向条件仅能包括资源对应的检出公式中的定向条件。
步骤S270:采用第一子索引表和第二子索引表构成用于倒排检索的倒排索引表。
步骤S270与前述实施例中的步骤S150相同,具体可以参见前文表述,此处不再复述。
在本公开实施例中,步骤S230基于定向条件中的属性键和键值构建第一定向键值对,步骤S240基于第一定向键值对,第一定向键值对对应的定向条件包括的包含与否关系标识,以及第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表。在本公开的其他实施例中,步骤S230执行时也可以基于定向条件中的主键、主键键值以及包含与否关系标识,构建第一定向键值对。对应的,步骤S240基于第一定向键值对,以及第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中第二子索引表的表项包括定向键值,以及第一定向键值对对应的定向条件所属的子检出公式。为了较好的使用此方案,本公开实施例中,用于资源检索的检索语句应当仅包括资源对应的检出公式中的定向条件。
可选的,在本公开的一些实施例中,在采用前述的步骤S210-S270构建倒排索引表的情况下,在执行步骤S280。
步骤S280:确定子检出公式包括的包含关系标识的数量。
确定子检出公式包括的包含关系标识的数量,是对子检出公式中的所有定向条件进行遍历,确定各个定向条件是否包括包含关系标识,并最终确定子检出公式包括的包含关系的数量。例如,针对子检出公式(age∈{3}^state∈{NY}),其包括的包含关系标识的数量为2。再例如,针对子检出公式其包括的包含关系标识的数量也为2,而子检出公式包括的包含关系标识的数量为0。
在执行步骤S280的情况下,步骤S240具体包括步骤S241。
步骤S241:基于第一定向键值对,第一定向键值对对应的定向条件所属的子检出公式,以及对应的包含关系标识的数量,构建第二子索引表,以使第二子索引表的表项除包括定向键值,以及第一定向键值对对应的定向条件所属的子检出公式外,还包括对应的包含关系标识的数量。
应当注意的是,此第二子索引表包括特殊表项的情况下,特殊表项中包括的包含关系标识的数量为0。
本公开实施例中,包含关系标识的数量可以采用Conjsize表示。在执行步骤S241的基础上,针对前文举例,构建的第二子索引表可以如下。
Conjsize=2:(age,3)->[(c[1],∈),(c[2],∈),(c[3],∈)],(state,NY)->[(c[1],∈)],(gender,F)->[(c[2],∈),(c[7],∈)],(gender,M)->[(c[3],∈),(c[4],∈)],(c[4],∈),(c[7],∈)]。
Conjsize=1:(age,3)->[(c[5],∈)],(age,4)->[(c[5],∈)]。
本公开实施例中,通过在第二子索引表中的表项中设置包含关系标识的数量,可以减少对第二子索引表中表项的检索数量,进而提高检索效率。具体如何减少对第二子索引表中表项的检索数量,可以参见后文中的表述。
除了提供前述的构建倒排索引表的方法外,本公开实施例还提供一种基于前述方法构建的倒排索引表的资源检索方法。
图3是本公开实施例提供的资源检索方法的流程图。如图3所示,本公开实施例提供的资源检索方法包括步骤S310-S360。
本公开实施例提供的资源检索方法可以由服务器执行,也可以由服务器和用户终端配合执行,本公开实施例并不做特别地限定。
步骤S310:获取检索语句,检索语句包括至少一个检索条件。
检索语句是用于进行资源检索的查询语句。本公开实施例中,检索语句可以是由用户终端获得的用户输入的检索语句,也可以是服务器根据某些特定的信息获得的检索语句。
检索条件是用于构成检索语句的最小单元。在一些实施例中,检索条件包括可以包括属性值和键值,在另外一些实施例中,检索条件除了包括属性值和键值外,还可以包含与否关系标识。前述包含与否关系标识可以是包含关系标识,也可以是不包含关系标识,本公开实施例并不做特别地限定。但是,在实际应用中,检索条件多是包含关系标识的检索条件。
例如,在本公开一个具体应用中,检索语句为:age=3,state=CA,gender=M,此检索语句包括的检索条件为3个,分别为“age=3”、“state=CA”和“gender=M”。
应当注意的是,本公开实施例中检索语句中的检索条件并没有“和”或者“或”的关系,仅是某些资源对应的子检出条件中的定向条件均与检索条件匹配,则将此资源作为检索出的资源。
步骤S320:基于检索条件构建第二定向键值对。
本公开实施例中,基于检索条件构建第二定向键值对与前述构建倒排索引表中的方法类似。
在一个实施例中,基于检索条件构建第二定向键值为:基于检索条件中的属性值和键值,构建第二定向键值对。例如,针对前述的检索条件“age=3”、“state=CA”和“gender=M”,构建的第二定向键值对为(age,3)、(state,CA)和(gender,M)。
在另外一个实施例中,基于检索条件构建第二定向键值对为:基于检索条件中的属性值、键值和包含与否关系标识,构建第二定向键值对。例如,针对前述的检索条件“age=3”、“state=CA”和“gender=M”,构建的定向键值对为(age,3,∈)、(state,CA,∈)和(gender,M,∈)。
步骤S330:基于第二定向键值对,查找倒排索引表中的第二子索引表,确定与第二定向键值对对应的子检出公式。
本公开实施例中,确定与第二定向键值对对应的子检出公式,是将第二定向键值对倒排索引表中的表项进行遍历,确定包括第二定向键值对的表项,并将表项中包括的子检出公式作为与第二定向键值对对应的子检出公式。
例如,基于前文实施例提供的倒排索引表中的第二子索引表(age,3)->[c[1],c[2],c[3],c[5]],(state,NY)->[c[1],c[6]],(gender,F)->[c[2],c[7]],(gender,M)->[c[3],c[4]],(state,CA)->[c[3],c[4],c[6],c[7]],(age,4)->c[5],采用步骤S320确定的第二定向键值对(age,3)、(state,CA)和(gender,M),可以确定的子检出公式为c[1],c[2],c[3],c[5],c[7],c[4]。
步骤S340:判断子检出公式是否与检索语句匹配。若匹配,执行步骤S350;若否,执行步骤S360。
判断子检出公式是否与检索语句匹配是判断各个子检出公式是否满足检索语句的规则要求。
可选的,在本公开的一个实施例中,判断子检出公式是否与检索语句匹配具体可以为:判断子检出公式中包括的定向条件是否均与检索语句中的检索条件相同。针对前述得到的子检出公式c[1],c[2],c[3],c[5],c[7],c[4],可以将各个子检出公式的定向条件和检索语句的检索条件进行匹配判断。例如,子检出公式c[1](age∈{3}^state∈{NY}),而检索语句为age=3,state=CA,gender=M,c[1]中的检出条件state∈{NY}与检索语句中的state=CA并不相同,则c[1]并不与检索语句匹配。同样的,可以确定其他子检出公式是否与检索语句匹配。其中c[2],c[3],c[7]与检索语句不匹配,c[4]和c[5]与检索语句匹配
步骤S350:基于子检出公式查找倒排索引表中的第一子索引表,确定与子检出公式对应的资源的标识作为待检出资源的标识。
在确定与检索语句匹配的子检出公式后,采用子检出公式作为检索条件对第一子索引表中的表项进行检索,可以得到子检出公式对应的资源的标识,此资源的标识为待检出资源的标识。
例如,基于前述与检索语句匹配的子检出公式c[4]和c[5],可以得到对应的资源的标识为R[1],R[4],R[5],R[6],因此待检出的资源为R[1],R[4],R[5],R[6]标识的资源。
步骤S360:丢弃对应的子检出公式。
如果确定子检出公式并不与检索语句匹配,则可以直接丢弃对应的子检出公式,并对其他匹配的子检出公式执行步骤S340的判断步骤,直至所有基于步骤S330确定的子检出公式均被执行步骤S340-S360。
采用本公开实施例提供的资源检索方法,首先根据检索语句中的检索条件构建第二定向键值对,随后查询第二子索引表确定与第二定向键值对对应的子检出公式,并在判定子检出公式与检索语句匹配的情况下,根据子检出公式的查找第一子索引表,确定待检出资源的标识,也就是通过二层索引检索的方式确定待检出资源的标识。采用本公开实施例提供的资源检索方法,采用的索引表并不是直接建立第一定向键值对与资源的标识对应关系的一层倒排索引表,因此避免了常用键值对对应大量资源的标识造成的检索效率较低的问题。即,采用本公开实施例提供的资源检索方法相比于基于一层倒排索引表的资源检索方法效率要高。
如前,在本公开的一些实施例中,倒排索引表中的第二子索引表中的表项包括包含与否关系标识,检索语句中的检索条件均是包括包含关系标识的检索条件。在此情况下,本公开实施例提供的资源检索方法中,步骤S330可以包括步骤S331-S332。
步骤S331:基于第二定向键值对,查找第二子索引表中包括第二定向键值对的表项。
本公开实施例中,基于第二定向键值对查询第二子索引表中包括第二定向键值对的表项与前述步骤S330中叙述的方法相同,此处不再复述。
步骤S332:从第二子索引表中包括第二定向键值对的表项中,选择包括包含关系标识的子检出公式。
因为检索语句中的检索条件均是包括包含关系标识的检索条件,所以即使从第二子索引表中包括第二定向键值对的表项中选择子检出公式,也是应当选择包括包含关系标识的子检出公式。
例如,针对前述的检索语句age=3,state=CA,gender=M,对应的第二子索引表的表项包括:(age,3)->[(c[1],∈),(c[2],∈),(c[3],∈),[(c[5],∈)], (gender,F)->[(c[2],∈),(c[7],∈)],(gender,M)->[(c[3],∈),(c[4],∈)], (age,4)->[(c[5],∈)],则可以从中选定的子检出公式包括c[1],c[2],c[4],c[5],c[7]。
可选的,在本公开的一些实施例中,在第二子索引表中的表项包含特殊表项的情况下,前述的步骤S330基于所述第二定向键值对,查找所述倒排索引表中的第二子索引表,确定与所述第二定向键值对对应的子检出公式还可以包括步骤S333-S334。
步骤S333:在所述第二子索引表中没有查找到包括所述第二定向键值对的表项的情况下,将所述特殊表项作为与所述第二定向键值匹配的表项。
步骤S334:从所述特殊表项中,选择包括包含关系标识的所述子检出公式。
在倒排索引表为前述倒排索引表,即倒排索引表中的第一子索引表中的表项包括:
c[1]-->R[1],R[6],R[7];c[2]-->R[2];c[3]-->R[3];c[4]-->R[1],R[4],R[6];c[5]-->R[4],R[5];c[6]-->R[2],R[5],R[6];c[7]-->R[3],R[7],
倒排索引表中的第二子索引表中的表项包括:
(age,3)->[(c[1],∈),(c[2],∈),(c[3],∈)],(state,NY)->[(c[1],∈)],(gender,F)->[(c[2],∈),(c[7],∈)],(gender,M)->[(c[3],∈),(c[4],∈)],(age,3)->[(c[5],∈)],(age,4)->[(c[5],∈)],和
如果检索语句为age=100。基于age=100构建的第二定向键值对为(age,100)。如果直接采用步骤S310-S360执行,则无法检索到第二子索引表中的表项,也就无法检索到第一子索引表的表项,即无法检出资源。但是人工分析前述的资源,R[2],R[5],R[6]对应的子检出条件包括了其与检索语句并不age=100并不冲突,应当被检出。
而采用前述的步骤S333-S334,则可以实现对前述资源R[5]定的子检出公式的检出。具体的,因为特殊表项为Z->[(c[6],∈)]。在采用(age,100)确定无法检出对应的表项的情况下,将特殊表项作为其对应的表项,得到了对应的子检出公式为c[6],随后采用c[6]执行步骤S340,即可以确地仅能够对应的资源R[2],R[5],R[6]。在执行完成步骤S331-S332后,可以继续执行步骤S340-S360。
可选的,在本公开一些实施例中,第二子索引表的表项中还包括包含关系标识的数量。在此情况下,本公开实施例提供资源检索方法除了可以包括前述的步骤S310-S360之外,在执行步骤S330或者S332之前,还可以执行步骤S370。
步骤S370:确定检索语句中的检索条件数量。
本公开实施例中,确定检索语句包括的检索条件数量是对检索语句中的检索条件进行统计。例如,针对检索语句age=3,state=CA,gender=M,其包括3个检索条件,检索条件数量为3。
在确定检索条件数量的情况下,本公开实施例中,在执行步骤S332时,具体可以包括步骤S3321和S3322。
步骤S3321:从第二子索引表中的所有表项中,查找包含关系标识的数量小于检索条件数量的表项。
步骤S3322:从包含关系标识的数量小于检索条件数量的表项中,并且包括第二定向键值对的表项中,选择包括包含关系标识的子检出公式。
例如,针对检索语句age=3,state=CA,gender=M,其包含的检索条件数量为3,那么针对此检索语句能够检出的资源,对应的子检出公式最多只能包括3个定向条件,并且三个定向条件的关系为(age∈{3}^state∈{CA})v(gender∈{M})。而如果子检出公式中包括包含关系标识的定向条件超过3,则此子检出公式一定与检索语句不匹配,也无需采用第二子索引表查找此类子检出公式。
也就是说,从第二子索引表的所有表项中,查找包含关系标识的数量小于检索条件数量的表项,可以排除无需检索的表项,避免无效检索,进而提高了检索效率。
可选的,在本公开的一些实施例中,在第二子索引表的表项中包括包含与否关系标识和包含关系标识的数量的情况下,并且检索语句的定向条件均是包括包含关系标识的定向条件的情况下,步骤S340具体可以包括步骤S341-S342。
步骤S341:判断子检出公式的检出次数是否大于或者等于对应表项的包含关系标识数量;若是,执行步骤S342;若否,执行步骤S343。
步骤S342:判定子检出公式与检索语句匹配。
步骤S343:判定子检出公式与检索语句不匹配。
以下通过举例的方式,为了更为方便地理解步骤S341-S343。针对检索语句age=3,state=CA,gender=M,根据其中包含的检索条件可以构建的第二定向键值对包括(age,3),(state,CA),(gender,M)。
对应的,第二子索引表中Conjsize=2的表项包括(age,3)->[(c[1],∈),(c[2],∈),(c[3],∈)],(state,NY)->[(c[1],∈)],(gender,F)->[(c[2],∈),(c[7],∈)],(gender,M)->[(c[3],∈),(c[4],∈)],
Conjsize=2表明检出条件对应的子检出公式包括两个检出条件。也就是说,如果Conjsize=2表项中的子检出公式为与检索语句匹配的表项,则对应的子检出公式应当为(age∈{3}^state∈{CA})),(age∈{3}^(gender∈{M}),(state∈{CA})^(gender∈{M})。
也就是子检出公式被检出的次数应当大于或者等于其包括的包含标识数量。而如果此子检出公式被检出次数并不是大于或者等于其包括的包含标识数量,则确定此子检出公式并不与检索语句匹配,可以执行步骤S360将其删除。
在本公开的一些实施例中,倒排索引表中的第二子索引表不包括特殊表项,也就是不包括诸如Z->[(c[6],∈)]的特殊表项。在此情况下,本公开实施例提供的资源检索方法,在执行步骤S320之前,还包括步骤S370。并且在步骤S370中判定结果为不相同的情况下,还包括步骤S380。
步骤S370:判断检索条件是否与构建第二子索引表的定向条件相同;若相同,执行步骤S320;若不相同,执行步骤S380。
步骤S380:确定检索语句为非法语句。
本公开实施例中,可以预先设置包括构建第二子索引表的定向条件的表格。在确定检索条件后,利用检索条件查找前述表格,确定是否查找出与检索条件相同的定向条件。如果查找到所有的检索条件均具有对应相同的定向条件,则确定检索语句合法,可以执行步骤S320。而如果一个检索条件没有对应的定向条件,则执行步骤S380确定检索语句为非法语句。在确定检索语句为非法语句的情况下,服务器还可以生成相应的提示信息。
以下,以检索语句中的检索条件与构建第二子索引表的定向条件不同举例,对步骤S370和步骤S380进行说明。
例如,检索语句为age=100;第二子索引表的表项包括(age,3)->[(c[1],∈),(c[2],∈),(c[3],∈)],(state,NY)->[(c[1],∈)],(gender,F)->[(c[2],∈),(c[7],∈)],(gender,M)->[(c[3],∈),(c[4],∈)],(age,3)->[(c[5],∈)],(age,4)->[(c[5],∈)],和
如果不执行步骤S370的判断步骤,直接构建第二定向键值对,则构建的第二定向键值为(age,100)。随后基于(age,100)查找第二子索引表,无法找到对应的表项,因此确定检索语句age=100没有对应的资源。
但是,如果人工分析前述各个子检出公式可以其并不与检索语句矛盾,也就是如果人工检索的话,应当检索到c[6]对应的资源标识,也就是R[2],R[5],R[6]。但是,采用前述步骤S310-S360却没有检出对应的资源。也就是说,在第二子索引表中不包括特殊的表项的情况下,需要保证检索语句中的检索条件均是构建倒排索引表的检索公式中包括的定向条件,才能保证检索解结果的正确性。也就是说,如果在第二子索引表不包括特殊表项的情况下,执行步骤S370可以保证检索结果的正确性。
在本公开另外一些实施例中,如果第二子索引表中包括特殊表项,则可以不对检索语句包含的检索条件进行限制。但是应当注意的是,在一些实施例中,检索条件仅能为包括包含关系标识的条件。
除了提供前述的倒排索引表构建方法和资源检索方法外,本公开实施例还提供一种实现前述倒排索引表构建方法或者资源检索方法的计算设备。
图4示出了本发明实施例提供的一种计算设备的结构示意图。本公开实施例提供的计算设备具体可以是服务器。计算设备可以执行前文实施例提供的倒排索引表的构建方法或者资源检索方法。
需要说明的是,图4示出的计算设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
该计算设备400传统上包括处理器410和以存储器420形式的计算机程序产品或者计算机可读介质。存储器420可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器420具有用于执行上述素材处理方法中的任何方法步骤的可执行指令(或程序代码)4211的存储空间421。例如,用于可执行指令的存储空间421可以包括分别用于实现上面的素材处理方法中的各种步骤的各个可执行指令4211。这些可执行指令可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,光盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图4的计算设备400中的存储器420类似布置的存储段或者存储空间等。可执行指令可以例如以适当形式进行压缩。通常,存储单元包括用于执行根据本发明的素材处理方法步骤的可执行指令,即可以由例如诸如处理器410之类的处理器读取的代码,这些代码当由计算设备400运行时,导致该计算设备400执行上面所描述的素材处理方法中的各个步骤。
当然,为了简化,图4中仅示出了该计算设备400中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口、输入装置和输出装置等等的组件。除此之外,根据具体应用情况,计算设备400还可以包括任何其他适当的组件。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本发明各实施例所提供的素材处理方法。
该计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
上述计算机可读介质可以是上述计算设备中所包含的;也可以是单独存在,而未装配入该计算设备中。
在本发明实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明的操作的程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明公开了:
1.一种倒排索引表构建方法,包括:
获取资源对应的检出公式,其中所述检出公式包括至少一个子检出公式,所述子检出公式包括至少一个定向条件,所述子检出公式包括的所述定向条件之间为求与关系;
基于所述子检出公式,以及所述子检出公式对应的资源的标识,构建第一子索引表,其中所述第一子索引表的表项包括所述子检出公式和所述子检出公式对应的资源的标识;
基于所述定向条件构建第一定向键值对;
基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中所述第二子索引表的表项包括所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;
采用所述第一子索引表和所述第二子索引表构成用于倒排检索的倒排索引表。
2.根据1所述的方法,所述定向条件包括属性键和键值;
所述基于所述定向条件构建第一定向键值对,包括:
基于所述定向条件中的属性键和键值构建所述第一定向键值对。
3.根据2所述的方法,所述定向条件还包括包含与否关系标识,所述包含与否关系标识是表示所述属性键是否包含所述键值的标识,所述包含与否关系标识为包含关系标识或者不包含关系标识;
所述基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,包括:
基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建所述第二子索引表,以使所述第二子索引表的表项还包括所述包含与否关系标识。
4.根据3所述的方法,所述方法还包括:
判断是否包括第一子检出公式,所述第一子检出公式是所有定向条件中的所述包含与否关系标识均为不包含关系标识的定向条件;
在判定包括所述第一子检出公式的情况下,基于所述第一子检出公式包括的所述定向条件,在所述第二子索引表中添加特殊表项,所述特殊表项包括特殊属性键、所述第一子检出公式和包含关系标识。
5.根据3或4所述的方法,
所述基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建所述第二子索引表,包括:
基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,所述第一定向键值对对应的定向条件所属的子检出公式,以及所述子检出公式中的包含关系标识的数量,构建所述第二子索引表,以使所述第二子索引表的表项还包括所述包含关系标识的数量。
6.根据4或5所述的方法,所述方法还包括:
在所述第二子索引表包括所述特殊表项的情况下,将所述特殊表项的包含关系标识的数量设置为0。
7.根据1所述的方法,所述定向条件还包括包含与否关系标识,所述包含与否关系标识是表示所述属性键是否包含所述键值的标识,所述包含与否关系标识为包含关系标识或者不包含关系标识;
所述基于所述定向条件构建第一定向键值对,包括:
基于所述定向条件中的主键、主键键值以及所述包含与否关系标识,构建所述第一定向键值对。
8.一种资源检索方法,基于倒排索引表实现资源的检索,其中所述倒排索引表包括第一子索引表和第二子索引表,所述第一子索引表的表项包括子检出公式和所述子检出公式对应的资源的标识,所述第二子索引表的表项包括第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;所述方法包括:
获取检索语句,所述检索语句包括至少一个检索条件;
基于所述检索条件构建第二定向键值对;
基于所述第二定向键值对,查找所述第二子索引表,确定与所述第二定向键值对对应的子检出公式;
判断所述子检出公式是否与所述检索语句匹配;
在所述子检出公式与所述检索语句匹配的情况下,基于所述子检出公式查找所述倒排索引表中的第一子索引表,确定与所述子检出公式对应的资源的标识作为待检出资源的标识。
9.根据8所述的方法,所述第一定向键值对包括属性键和键值,所述检索条件也包括属性键和键值;
所述基于所述检索条件构建第二定向键值对,包括:
基于所述检索条件中的属性键和键值,构建所述第二定向键值对。
10.根据8或9所述的方法,在所述第二子索引表中的表项包括包含与否关系标识,并且所述检索条件仅包括包含关系标识的情况下,
所述基于所述第二定向键值对,查找所述倒排索引表中的第二子索引表,确定与所述第二定向键值对对应的子检出公式,包括:
基于所述第二定向键值对,查找所述第二子索引表中包括所述第二定向键值对的表项;
从所述第二子索引表中包括所述第二定向键值对的表项中,选择包括包含关系标识的所述子检出公式。
11.根据10所述的方法,在所述第二子索引表中的表项包含特殊表项的情况下,所述基于所述第二定向键值对,查找所述倒排索引表中的第二子索引表,确定与所述第二定向键值对对应的子检出公式,还包括:
在所述第二子索引表中没有查找到包括所述第二定向键值对的表项的情况下,将所述特殊表项作为与所述第二定向键值匹配的表项;
从所述特殊表项中,选择包括包含关系标识的所述子检出公式;
其中,所述特殊表项包括特殊属性键、所述第一子检出公式和包含关系标识。
12.根据10或11所述的方法,在所述第二子索引表的表项包括包含关系标识数量的情况下,所述方法还包括:
确定所述检索语句中的检索条件数量;
所述从所述第二子索引表中包括所述第二定向键值对的表项中,选择包括包含关系标识的所述子检出公式,包括:
从所述第二子索引表中的所有表项中,查找包含关系标识的数量小于所述检索条件数量的表项;
从包含关系标识的数量小于所述检索条件数量的表项中,并且包括所述第二定向键值对的表项中,选择包括所述包含关系标识的所述子检出公式。
13.根据12所述的方法,所述判断所述子检出公式是否与所述检索语句匹配,包括:
判断所述子检出公式的检出次数是否大于或等于对应表项的包含关系标识数量;
在所述子检出公式的检出次数大于或者等于所述子检出公式中的所述包含关系标识数量的情况下,判定所述子检出公式与所述检索语句匹配。
14.根据8所述的方法,所述第一定向键值对包括属性键、键值和包含与否关系标识,所述检索条件也包括属性键、键值和包含与否关系标识;
所述基于所述检索条件构建第二定向键值对,包括:
基于所述检索条件中的属性键、键值和包含与否关系标识,构建所述第二定向键值对。
15.根据8-14任一项所述的方法,所述判断所述子检出公式是否与所述检索语句匹配,包括:
判断所述子检出公式中包括的定向条件是否均与所述检索语句中的一个检索条件相同。
16.一种计算设备,包括处理器和存储器,所述存储器用于存储可执行指令,所述可执行指令使所述处理器执行以下操作:
获取资源对应的检出公式,其中所述检出公式包括至少一个子检出公式,所述子检出公式包括至少一个定向条件,所述子检出公式包括的所述定向条件之间为求与关系;
基于所述子检出公式,以及所述子检出公式对应的资源的标识,构建第一子索引表,其中所述第一子索引表的表项包括所述子检出公式和所述子检出公式对应的资源的标识;
基于所述定向条件构建第一定向键值对;
基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中所述第二子索引表的表项包括所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;
采用所述第一子索引表和所述第二子索引表构成用于倒排检索的倒排索引表。
17.根据16所述的计算设备,所述定向条件包括属性键和键值;
在所述处理器基于所述定向条件构建第一定向键值对时,所述可执行指令具体使所述处理器执行如下操作:
基于所述定向条件中的属性键和键值构建所述第一定向键值对。
18.根据17所述的计算设备,所述定向条件还包括包含与否关系标识,所述包含与否关系标识是表示所述属性键是否包含所述键值的标识,所述包含与否关系标识为包含关系标识或者不包含关系标识;
在所述处理器执行所述基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表的操作时,所述可执行指令具体使所述处理器执行如下操作:
基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建所述第二子索引表,以使所述第二子索引表的表项还包括所述包含与否关系标识。
19.根据18所述的计算设备,所述可执行指令还使所述处理器执行如下操作:
判断是否包括第一子检出公式,所述第一子检出公式是所有定向条件中的所述包含与否关系标识均为不包含关系标识的定向条件;
在判定包括所述第一子检出公式的情况下,基于所述第一子检出公式包括的所述定向条件,在所述第二子索引表中添加特殊表项,所述特殊表项包括特殊属性键、所述第一子检出公式和包含关系标识。
20.根据18或19所述的计算设备,
在所述处理器执行所述基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建所述第二子索引表时,所述可执行指令还使所述处理器执行以下操作:
基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,所述第一定向键值对对应的定向条件所属的子检出公式,以及所述子检出公式中的包含关系标识的数量,构建所述第二子索引表,以使所述第二子索引表的表项还包括所述包含关系标识的数量。
21.根据18-20任一项所述的计算设备,在所述第二子索引表包括所述特殊表项的情况下,所述可执行指令具体使所述处理器执行如下操作:
将所述特殊表项的包含关系标识的数量设置为0。
22.根据16所述的计算设备,所述定向条件还包括包含与否关系标识,所述包含与否关系标识是表示所述属性键是否包含所述键值的标识,所述包含与否关系标识为包含关系标识或者不包含关系标识;
在所述处理器基于所述定向条件构建第一定向键值对时,所述可执行指令具体使所述处理器执行以下操作:
基于所述定向条件中的主键、主键键值以及所述包含与否关系标识,构建所述第一定向键值对。
23.一种计算设备,包括处理器和存储器,所述存储器用于存储可执行指令和倒排索引表,所述倒排索引表包括第一子索引表和第二子索引表,所述第一子索引表的表项包括子检出公式和所述子检出公式对应的资源的标识,所述第二子索引表的表项包括第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;所述可执行指令使所述处理器执行以下操作:
获取检索语句,所述检索语句包括至少一个检索条件;
基于所述检索条件构建第二定向键值对;
基于所述第二定向键值对,查找所述第二子索引表,确定与所述第二定向键值对对应的子检出公式;
判断所述子检出公式是否与所述检索语句匹配;
在所述子检出公式与所述检索语句匹配的情况下,基于所述子检出公式查找所述倒排索引表中的第一子索引表,确定与所述子检出公式对应的资源的标识作为待检出资源的标识。
24.根据23所述的计算设备,所述第一定向键值对包括属性键和键值,所述检索条件也包括属性键和键值;
在所述处理器执行所述基于所述检索条件构建第二定向键值对时,所述可执行指令具体使所述处理器执行如下操作:
基于所述检索条件中的属性键和键值,构建所述第二定向键值对。
25.根据23或24所述的计算设备,在所述第二子索引表中的表项包括包含与否关系标识,并且所述检索条件仅包括包含关系标识的情况下,所述处理器执行所述基于所述第二定向键值对,查找所述倒排索引表中的第二子索引表,确定与所述第二定向键值对对应的子检出公式时,所述可执行指令具体使所述处理器执行如下操作:
基于所述第二定向键值对,查找所述第二子索引表中包括所述第二定向键值对的表项;
从所述第二子索引表中包括所述第二定向键值对的表项中,选择包括包含关系标识的所述子检出公式。
26.根据25所述的计算设备,在所述第二字索引表中的表项包含特殊表项的情况下,所述可执行指令还使所述处理器执行如下操作:
在所述第二子索引表中没有查找到包括所述第二定向键值对的表项的情况下,将所述特殊表项,作为与所述第二定向键值匹配的表项;
从所述特殊表项中,选择包括包含关系标识的所述子检出公式;
其中,所述特殊表项包括特殊属性键、所述第一子检出公式和包含关系标识。
27.根据25或26所述的计算设备,在所述第二子索引表的表项包括包含关系标识数量的情况下,所述可执行指令还时所述处理器执行以下操作:
确定所述检索语句中的检索条件数量;
在所述处理器执行所述从所述第二子索引表中包括所述第二定向键值对的表项中,选择包括包含关系标识的所述子检出公式时,所述可执行指令具体使所述处理器执行以下操作:
从所述第二子索引表中的所有表项中,查找包含关系标识的数量小于所述检索条件数量的表项;
从包含关系标识的数量小于所述检索条件数量的表项中,并且包括所述第二定向键值对的表项中,选择包括所述包含关系标识的所述子检出公式。
28.根据27所述的计算设备,在所述处理器执行所述判断所述子检出公式是否与所述检索语句匹配时,所述可执行指令具体使所述处理器执行如下操作:
判断所述子检出公式的检出次数是否大于或等于对应表项的包含关系标识数量;
在所述子检出公式的检出次数大于或者等于所述子检出公式中的所述包含关系标识数量的情况下,判定所述子检出公式与所述检索语句匹配。
29.根据23所述的计算设备,所述第一定向键值对包括属性键、键值和包含与否关系标识,所述检索条件也包括属性键、键值和包含与否关系标识;
在所述处理器执行所述基于所述检索条件构建第二定向键值对时,所述可执行指令具体使所述处理器执行如下操作:
基于所述检索条件中的属性键、键值和包含与否关系标识,构建所述第二定向键值对。
30.根据23-29任一项所述的计算设备,在所述第二子索引表的表项包括包含关系标识数量的情况下,所述处理器执行所述判断所述子检出公式是否与所述检索语句匹配,所述可执行指令具体使所述处理器执行如下操作:
判断所述子检出公式中包括的定向条件是否均与所述检索语句中的一个检索条件相同。
31.一种计算机可读存储介质,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述1-7任一项所述的倒排索引表构建方法,或者使处理器实现上述8-15任一项所述的资源检索方法。
本发明的各个部件实施例可以全部或部分步骤以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的电子设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本发明的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种倒排索引表构建方法,其特征在于,包括:
获取资源对应的检出公式,其中所述检出公式包括至少一个子检出公式,所述子检出公式包括至少一个定向条件,所述子检出公式包括的所述定向条件之间为求与关系;
基于所述子检出公式,以及所述子检出公式对应的资源的标识,构建第一子索引表,其中所述第一子索引表的表项包括所述子检出公式和所述子检出公式对应的资源的标识;
基于所述定向条件构建第一定向键值对;
基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中所述第二子索引表的表项包括所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;
采用所述第一子索引表和所述第二子索引表构成用于倒排检索的倒排索引表。
2.根据权利要求1所述的方法,其特征在于,所述定向条件包括属性键和键值;
所述基于所述定向条件构建第一定向键值对,包括:
基于所述定向条件中的属性键和键值构建所述第一定向键值对。
3.根据权利要求2所述的方法,其特征在于,所述定向条件还包括包含与否关系标识,所述包含与否关系标识是表示所述属性键是否包含所述键值的标识,所述包含与否关系标识为包含关系标识或者不包含关系标识;
所述基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,包括:
基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建所述第二子索引表,以使所述第二子索引表的表项还包括所述包含与否关系标识。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
判断是否包括第一子检出公式,所述第一子检出公式是所有定向条件中的所述包含与否关系标识均为不包含关系标识的定向条件;
在判定包括所述第一子检出公式的情况下,基于所述第一子检出公式包括的所述定向条件,在所述第二子索引表中添加特殊表项,所述特殊表项包括特殊属性键、所述第一子检出公式和包含关系标识。
5.根据权利要求3或4所述的方法,其特征在于,
所述基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建所述第二子索引表,包括:
基于所述第一定向键值对,所述第一定向键值对对应的定向条件包括的所述包含与否关系标识,所述第一定向键值对对应的定向条件所属的子检出公式,以及所述子检出公式中的包含关系标识的数量,构建所述第二子索引表,以使所述第二子索引表的表项还包括所述包含关系标识的数量。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
在所述第二子索引表包括所述特殊表项的情况下,将所述特殊表项的包含关系标识的数量设置为0。
7.一种资源检索方法,其特征在于,基于倒排索引表实现资源的检索,其中所述倒排索引表包括第一子索引表和第二子索引表,所述第一子索引表的表项包括子检出公式和所述子检出公式对应的资源的标识,所述第二子索引表的表项包括第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;所述方法包括:
获取检索语句,所述检索语句包括至少一个检索条件;
基于所述检索条件构建第二定向键值对;
基于所述第二定向键值对,查找所述第二子索引表,确定与所述第二定向键值对对应的子检出公式;
判断所述子检出公式是否与所述检索语句匹配;
在所述子检出公式与所述检索语句匹配的情况下,基于所述子检出公式查找所述倒排索引表中的第一子索引表,确定与所述子检出公式对应的资源的标识作为待检出资源的标识。
8.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储可执行指令,所述可执行指令使所述处理器执行以下操作:
获取资源对应的检出公式,其中所述检出公式包括至少一个子检出公式,所述子检出公式包括至少一个定向条件,所述子检出公式包括的所述定向条件之间为求与关系;
基于所述子检出公式,以及所述子检出公式对应的资源的标识,构建第一子索引表,其中所述第一子索引表的表项包括所述子检出公式和所述子检出公式对应的资源的标识;
基于所述定向条件构建第一定向键值对;
基于所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式,构建第二子索引表,其中所述第二子索引表的表项包括所述第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;
采用所述第一子索引表和所述第二子索引表构成用于倒排检索的倒排索引表。
9.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储可执行指令和倒排索引表,所述倒排索引表包括第一子索引表和第二子索引表,所述第一子索引表的表项包括子检出公式和所述子检出公式对应的资源的标识,所述第二子索引表的表项包括第一定向键值对,以及所述第一定向键值对对应的定向条件所属的子检出公式;所述可执行指令使所述处理器执行以下操作:
获取检索语句,所述检索语句包括至少一个检索条件;
基于所述检索条件构建第二定向键值对;
基于所述第二定向键值对,查找所述第二子索引表,确定与所述第二定向键值对对应的子检出公式;
判断所述子检出公式是否与所述检索语句匹配;
在所述子检出公式与所述检索语句匹配的情况下,基于所述子检出公式查找所述倒排索引表中的第一子索引表,确定与所述子检出公式对应的资源的标识作为待检出资源的标识。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述权利要求1-6任一项所述的倒排索引表构建方法,或者使处理器实现上述权利要求7所述的资源检索方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210203525.XA CN114461751A (zh) | 2022-03-03 | 2022-03-03 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
PCT/CN2023/079279 WO2023165557A1 (zh) | 2022-03-03 | 2023-03-02 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210203525.XA CN114461751A (zh) | 2022-03-03 | 2022-03-03 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114461751A true CN114461751A (zh) | 2022-05-10 |
Family
ID=81415408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210203525.XA Pending CN114461751A (zh) | 2022-03-03 | 2022-03-03 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114461751A (zh) |
WO (1) | WO2023165557A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165557A1 (zh) * | 2022-03-03 | 2023-09-07 | 掌阅科技股份有限公司 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714096B (zh) * | 2012-10-09 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 基于Lucene的倒排索引系统构建、数据处理方法及装置 |
CN104750781A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 广告检索方法 |
CN114461751A (zh) * | 2022-03-03 | 2022-05-10 | 掌阅科技股份有限公司 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
-
2022
- 2022-03-03 CN CN202210203525.XA patent/CN114461751A/zh active Pending
-
2023
- 2023-03-02 WO PCT/CN2023/079279 patent/WO2023165557A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165557A1 (zh) * | 2022-03-03 | 2023-09-07 | 掌阅科技股份有限公司 | 倒排索引表构建方法、资源检索方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023165557A1 (zh) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8559731B2 (en) | Personalized tag ranking | |
CN110489345B (zh) | 一种崩溃聚合方法、装置、介质和设备 | |
US8977623B2 (en) | Method and system for search engine indexing and searching using the index | |
US9660947B1 (en) | Method and apparatus for filtering undesirable content based on anti-tags | |
KR101511656B1 (ko) | 퍼스널 아이덴티티를 기술하는 데이터에 대한 액셔너블 속성의 애스클라이빙 | |
US20110029476A1 (en) | Indicating relationships among text documents including a patent based on characteristics of the text documents | |
Jiang et al. | Recommending new features from mobile app descriptions | |
US10248626B1 (en) | Method and system for document similarity analysis based on common denominator similarity | |
US11327985B2 (en) | System and method for subset searching and associated search operators | |
CN113010778A (zh) | 一种基于用户历史兴趣的知识图谱推荐方法和系统 | |
KR20200049193A (ko) | 콘텐츠 추천 방법 및 이를 지원하는 서비스 장치 | |
CN112463991A (zh) | 历史行为数据的处理方法、装置、计算机设备及存储介质 | |
CN111755090A (zh) | 病历查找方法、病历查找装置、存储介质与电子设备 | |
CN114461751A (zh) | 倒排索引表构建方法、资源检索方法、设备及存储介质 | |
US8577814B1 (en) | System and method for genetic creation of a rule set for duplicate detection | |
Bouadjenek et al. | Literature consistency of bioinformatics sequence databases is effective for assessing record quality | |
US20160162930A1 (en) | Associating Social Comments with Individual Assets Used in a Campaign | |
JP7278100B2 (ja) | 投稿評価システム及び方法 | |
US8589409B2 (en) | Selecting a data element in a network | |
CN116628049A (zh) | 一种基于大数据的信息系统维护管理系统及方法 | |
CN112749325A (zh) | 搜索排序模型的训练方法、装置、电子设备及计算机介质 | |
CN114218259B (zh) | 基于大数据SaaS的多维科创信息搜索方法及系统 | |
US9286349B2 (en) | Dynamic search system | |
US20220012235A1 (en) | Systems and methods for targeted data discovery | |
CN111143203B (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 |