CN101706798A - 用二元决策图缓存查询结果 - Google Patents
用二元决策图缓存查询结果 Download PDFInfo
- Publication number
- CN101706798A CN101706798A CN200910221419A CN200910221419A CN101706798A CN 101706798 A CN101706798 A CN 101706798A CN 200910221419 A CN200910221419 A CN 200910221419A CN 200910221419 A CN200910221419 A CN 200910221419A CN 101706798 A CN101706798 A CN 101706798A
- Authority
- CN
- China
- Prior art keywords
- bdds
- binary decision
- decision diagrams
- binary
- speech
- 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
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/322—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及用二元决策图缓存查询结果。构造多个第一二元决策图,各第一二元决策图表示多个词中的不同的一个。构造多个第二二元决策图,各第二二元决策图表示多个搜索查询中的不同的一个,每个搜索查询包括所述词中的一个或更多个词。构造多个第三二元决策图,各第三二元决策图表示多个网页中的不同的一个。构造多个第四二元决策图,各第四二元决策图表示多个搜索结果中的不同的一个,每个搜索结果包括一个或更多个网页。构造多个第五二元决策图,各第五二元决策图表示多个搜索元组中的不同的一个,各搜索元组包括一个不同的搜索查询和一个不同的搜索结果。构造第六二元决策图,该第六二元决策图表示这些搜索查询和搜索结果。
Description
技术领域
本公开总体上涉及缓存互联网搜索结果。
背景技术
互联网容纳了大量的信息。各种各样的网站处的各种各样的网页都包含很多这样的信息。典型地,为了查找特定的信息,一个人使用搜索引擎来搜索该信息。这个人为该搜索提供一个描述所查找信息的搜索查询,从而,搜索引擎使用该搜索查询,根据一个或更多个搜索算法在互联网上执行搜索,并返回可能包含所查找信息的网页的列表。该网页列表即是该搜索查询的搜索结果。
一个人可能想在不同的时间查找类似的信息。由于有巨大数量的可用网页,在所有(甚至其中一部分)这些互联网上的网页中搜索特定的信息往往都是很费时的。一个使这种搜索更加有效率的办法就是缓存互联网搜索结果,并在以后使用它们来为类似的搜索提供搜索结果。
附图说明
图1例示了跟据特定实施方式使用二元决策图(BDD)缓存互联网搜索结果的示例方法。
图2A-2D例示了表示四个词的四个示例词BDD。
图3A-3B例示了表示两个搜索查询的两个示例查询BDD。
图4A-4E例示了表示五个网页的五个示例网页BDD。
图5A-5B例示了表示两个搜索结果的两个示例结果BDD。
图6A-6C例示了表示三个搜索元组的三个示例元组BDD。
图7A例示了表示搜索查询集合和对应的搜索结果集合的BDD。
图7B例示了表示对图7A中例示的BDD应用缩减规则后的结果的BDD。
图8A例示了根据特定实施方式对表示搜索查询集合和对应的搜索结果集合的BDD添加新的一对对应的搜索查询和搜索结果的示例方法。
图8B例示了根据特定实施方式从表示搜索查询集合和对应的搜索结果集合的BDD中删除现有的一对对应的搜索查询和搜索结果的示例方法。
图9例示了根据特定实施方式使一个人可以搜索互联网上的信息的示例网络环境。
图10例示了根据特定实施方式使用BDD生成针对搜索查询的搜索结果的示例方法。
图11例示了根据特定实施方式的示例计算机系统。
具体实施方式
在特定的实施方式中,使用二元决策图(BDD)来缓存搜索查询集合和对应的搜索结果集合.每个搜索查询包含一个或更多个词.每个搜索结果包含一个或更多个通过使用对应的搜索查询进行互联网搜索而获得的网页.
BDD是一个可以用来表示布尔函数的数据结构。BDD可以用图形表示为有根不的、定向的非循环图,该图具有一个或更多个决策节点和两个端节点。每个决策节点表示布尔函数中的一个不同变量,它典型地在图中表示为圆。两个端节点,即,“0”端节点和“1”端节点,典型地各在图中表示为正方形。每个决策节点有两条边,一条为“0”边,典型地在图中表示为点划线或虚线,一条为“1”边,典型地在图中表示为实线。
图中的每条路径都可包含一个或更多个决策节点,并最终要么导向“0”端节点要么导向“1”端节点。导向“0”端节点的路径表明,布尔函数评估对由该路径上的决策节点表示的变量分配的值为“假”,而导向“1”端节点的路径表明,布尔函数评估对由该路径上的决策节点表示的变量分配的值为“真”。
在特定的实施方式中,在表示搜索查询集合和搜索结果集合的BDD中,一对对应的搜索查询和搜索结果由一条或更多条路径来表示。在每条路径上,一个或更多个决策节点表示搜索查询,另外的一个或更多个决策节点表示搜索结果中包含的各个网页。导向“1”端节点的路径表明,由该路径上的一些决策节点表示的网页,包括在与由该同一路径上的其他决策节点表示的搜索查询对应的搜索结果中。
图1例示了使用BDD来缓存搜索查询集合和对应的搜索结果集合的一个示例方法。利用表1例示的以下示例来描述图1的各种具体细节。
表1、搜索查询和搜索结果
搜索查询 | 搜索结果(网页) |
CAT FOOD(猫食) | A,B |
DOG FOOD(狗食) | A,C,D |
CAR(汽车) | E |
在表1所例示的示例中,搜索查询集合包含三个不同的搜索查询:“CATFOOD”、“DOG FOOD”和“CAR”。对应的搜索结果集合包含三个不同的搜索结果,每个对应于一个不同的搜索查询,并且每个搜索结果包含通过使用对应的搜索查询进行互联网搜索而获得的一个或更多个网页。从而,对于搜索查询“CAT FOOD”,对应的搜索结果包含两个网页:网页A和网页B;对于搜索查询“DOG FOOD”,对应的搜索结果包含三个网页:网页A、网页C和网页D;对于搜索查询“CAR”,对应的搜索结果包含一个网页:网页E。
对于搜索查询集合和对应的搜索结果集合,出现在一些搜索查询中的词可能部分重叠,这样同一词可能在多个搜索查询中出现。在表1所例示的示例中,词“FOOD”在搜索查询“CAT FOOD”和“DOG FOOD”中均出现过。
此外,对于一些搜索查询,它们对应的搜索结果可能部分重叠,这样同一网页可能包括在多个搜索结果中。在表1所例示的示例中,在与搜索查询“CATFOOD”和“DOG FOOD”对应的搜索结果中均包括网页A,因为网页A可能包含有关包括CAT FOOD和DOG FOOD在内的多种宠物食品的信息.
在特定的实施方式中,获得了包括所述搜索查询集合中的所有区别词的词集合(步骤110)。从而,出现在多个搜索查询中的词在所述词集合中仅被包括一次。对每个区别词分配一个唯一数字词标识符(ID)(步骤111)。在特定的实施方式中,在所述词集合中所有词ID都是唯一的,这样在所述词集合中不会有两个区别词拥有相同的词ID。
在表1所例示的示例中,这组三个查询中有四个区别词:“CAT”(猫)、“DOG”(狗)、“FOOD”(食物)和“CAR”。因此,所述词集合包括这四个区别词。假使分配给词“CAT”的词ID是10,分配给词“DOG”的词ID是11,分配给词“FOOD”的词ID是12,分配给词“CAR”的词ID是13。下面的表2以十进制和二进制两种格式包含了所述词集合和它们各自的词ID。
表2、词和词ID
词 | 词ID(十进制) | 词ID(二进制) |
CAT | 10 | 1010 |
DOG | 11 | 1011 |
FOOD | 12 | 1100 |
CAR | 13 | 1101 |
使用不同的BDD来表示各个区别词(步骤112)。为了区别起见,把表示单个词的BDD称为“词BDD”。整数可以用二进制格式来写。例如,十进制格式的数字10在二进制格式下是1010;十进制格式的数字11在二进制格式下是1011;十进制格式的数字12在二进制格式下是1100;十进制格式的数字13在二进制格式下是1101。
在特定的实施方式中,一个词可以基于其词ID利用一个BDD来表示。词ID中的每个二进制数位由作为BDD中的决策节点的不同变量来表示。二进制数位的实际值表明,在BDD中哪条路径导向“0”端节点,哪条路径导向“1”端节点。
作为示例,考虑词“CAT”,其词ID是1010。在二进制数字1010中有四个二进制数位。假使这四个二进制数位,从左到右,分别由四个变量x11、x12、x13和x14表示。图2A例示了BDD 210,BDD 210表示词ID为1010的词“CAT”。词BDD 210有四个分别表示变量x11、x12、x13和x14的区别决策节点,它们对应于词ID 1010中的四个二进制数位。实边表示值1,虚边表示值0。在词BDD 210中只有一条路径(指示1-0-1-0的路径)导向“1”端节点。所有其他路径均导向“0”端节点。因此,词BDD210表示词ID 1010,词ID 1010又表示词“CAT”。
类似地,图2B例示了BDD 220,BDD 220表示词ID为1011的词“DOG”。从左到右,词ID 1011中的这四个二进制数位,分别由四个变量x21、x22、x23和x24表示。在词BDD 220中只有一条路径(指示1-0-1-1的路径)导向“1”端节点。所有其他路径均导向“0”端节点。
图2C例示了BDD230,BDD230表示词ID为1100的词“FOOD”。从左到右,词ID 1100中的这四个二进制数位,分别由四个变量x31、x32、x33和x34表示。在词BDD 230中只有一条路径(指示1-1-0-0的路径)导向“1”端节点。所有其他路径均导向“0”端节点。
图2D例示了BDD 240,BDD 240表示词ID为1101的词“CAR”。从左到右,词ID 1101中的这四个二进制数位,分别由四个变量x41、x42、x43和x44表示。在词BDD 240中只有一条路径(指示1-1-0-1的路径)导向“1”端节点。所有其他路径均导向“0”端节点。
注意,虽然在图2A-2D中,使用唯一变量,即x11-x14、x21-x24、x31-x34和x41-x44,来表示表2中例示的四个不同的词ID,这并非是必须要求的。事实上,如下面图7中所示,可以使用同一变量来表示多个词ID中的特定二进制数位。例如,可以使用同样的四个变量,例如x1-x4,来表示“CAT”和“DOG”这两个词ID中的四个二进制数位。
对于词BDD所需要的不同变量的数量取决于该词BDD表示的词ID中的二进制数位的数量。由于数量越大具有的数位越多,所以一般来说,词ID的数量越大,表示词ID的词BDD所需要的变量就越多,反之亦然。在特定的实施方式中,为了使词BDD中的变量数量一致,可在较小的词ID的左边添加“0”数位,使得所有的词ID都具有相同数量的二进制数位,从而需要相同数量的不同变量。
一旦针对区别词集合构造了单独的词BDD,就可通过组合合适的词BDD而使用不同的BDD来表示每个搜索查询(步骤113)。为了区别起见,把表示单个搜索查询的BDD称为“查询ID”。另外,把标识搜索查询的二进制数位序列称为“查询ID”。有效的是,标识搜索查询的查询ID是标识在搜索查询中包含的词的词ID的组合。在特定的实施方式中,通过对表示搜索查询中的词的各单独词BDD执行逻辑“与”运算,来构造表示该搜索查询的查询BDD。在特定的实施方式中,以与对应的词在搜索查询中出现的顺序相同的顺序,来对词BDD执行“与”运算。在特定的实施方式中,为了对第BDD和第二BDD执行“与”运算,用第二BDD来替换第一BDD中的“1”端节点,以获得结果BDD。
考虑包括两个词“CAT”和“FOOD”的搜索查询“CAT FOOD”。表示搜索查询“CAT FOOD”的查询BDD可以通过对表示词“CAT”的词BDD 210和表示词“FOOD”的词BDD 230执行“与”运算来获得。词BDD 210中的“1”端节点被替换为词BDD 230。图3A例示了表示搜索查询“CAT FOOD”的查询BDD 310,它是对词BDD 210和词BDD 230执行“与”运算的结果。
类似地,图3B例示了表示搜索查询“DOG FOOD”的查询BDD 320,它是对表示词“DOG”的词BDD 220和表示“FOOD”的词BDD 230执行“与”运算的结果。
在特定的实施方式中,如果搜索查询只包括一个词,那么表示该搜索查询的查询BDD和表示该词的词BDD相同。例如,表示搜索查询“CAR”的查询BDD和表示词“CAR”的词BDD 240相同。
执行步骤110、111、112和113,从而针对所述搜索查询集合中包含的每个搜索查询构造了一个不同的查询BDD。另一方面,步骤120、121、122和123导致构造了一个BDD,该BDD表示与所述搜索查询集合对应的所述搜索结果集合中包括的区别网页集合。
在特定的实施方式中,获得了网页集合,所述网页集合包括所述搜索结果集合中的所有区别网页(步骤120).包括在多个搜索结果中的网页在所述网页集合中只被包括一次.对每个区别网页分配一个唯一数字页面ID(步骤121).在特定的实施方式中,这些页面ID在所述网页集合中是唯一的,这样在所述网页集合中就不会有两个区别网页拥有同样的页面ID.
在特定的实施方式中,由于词ID仅在所述词集合中是唯一的(步骤111),而页面ID仅在所述网页集合中是唯一的(步骤121),所以允许词和网页拥有同样的ID数字。从而,一个特定的数字可以用作词ID一次,用作页面ID一次,虽然这不是要求的。
在表1所例示的示例中,在三个搜索结果的集合中有五个区别网页:A、B、C、D和E。因此,所述网页集合包括这五个区别网页。假使分配给网页A的页面ID是1,分配给网页B的页面ID是2,分配给网页C的页面ID是3,分配给网页D的页面ID是4,分配给网页E的页面ID是5。下面的表3包含所述网页集合和其对应的十进制和二进制格式的页面ID。
表3、网页和页面ID
网页 | 页面ID(十进制) | 页面ID(二进制) |
A | 1 | 001 |
B | 2 | 010 |
C | 3 | 011 |
D | 4 | 100 |
E | 5 | 101 |
如上所述,表示ID值所需的二进制数位的数量取决于其自身的实际ID值。一般地,较大的ID值比较小的ID值需要更多的二进制数位。在表3中,页面ID 1只需要一个二进制数位。页面ID2和3各需要两个二进制数位。页面ID4和5各需要三个二进制数位。在特定的实施方式中,为了使二进制数位的数量在所有的页面ID中一致,可在一些二进制ID的左边添加一个或更多个“0”数位,使得所有的页面ID都具有相同数量的二进制数位。因此,在表3中,在页面ID 1的左边添加了两个“0”数位,在页面ID 2和3每个的左边添加了一个“0”数位。在特定的实施方式中,最大的页面ID决定了每个页面ID拥有的二进制数位的总数量。
使用不同的BDD来表示每个区别网页(步骤122)。为了区别起见,把表示单个网页的BDD称作“页面BDD”。在特定的实施方式中,可以利用基于网页的页面ID的BDD来表示网页。可以利用与上述的基于词ID为词构造词BDD的过程类似的过程,基于页面ID为网页构造页面BDD。图4A-4E例示了五个页面BDD,410、420、430、440和450,分别表示页面ID是001的网页A,页面ID是010的网页B,页面ID是011的网页C,页面ID是100的网页D,以及页面ID是101的网页E。
在特定的实施方式中,在各页面BDD 410、420、430、440和450中,同样的三个变量y1、y2和y3,从左到右分别表示对应的各页面ID 001、010、011、100和101中的三个二进制数位.因此,在这点上,构造页面BDD的过程不同于构造词BDD的过程.具体来说,在对应页面BDD中用来表示页面ID的二进制数位的变量,在每个页面ID中是唯一的,而在所述网页集合中则不是.事实上,在特定的实施方式中,在所有的页面BDD中重复使用同一变量集合,例如,在页面BDD 410、420、430、440和450中使用变量y1、y2和y3。由于通过必要时添加“0”数位而使所有的页面ID具有相同数量的二进制数位,所以可以使用相同数量的变量来表示每个页面ID中的二进制数位。
在特定的实施方式中,如果一个变量用在了一个词BDD中,则它将不再用在任何页面BDD中。反之,如果一个变量用在了一个页面BDD中,则它将不再用在任何词BDD中。
一旦针对区别网页集合构造了单独页面BDD,则可通过组合合适的页面BDD利用一个不同的BDD来表示每个搜索结果(步骤123)。为了区别起见,把表示搜索结果的BDD称作“结果BDD”。在特定的实施方式中,通过对表示搜索结果中包括的网页的单独页面BDD执行逻辑“或”运算,来构造结果BDD。
考虑针对搜索查询“CAT FOOD”的搜索结果,其包括两个网页:A和B。表示该搜索结果的结果BDD可以通过对表示网页A的页面BDD 410和表示网页B的页面BDD 420执行“或”运算来获得。图5A例示了结果BDD 510,该结果BDD 510表示包括两个网页A和B的针对搜索查询“CATFOOD”的搜索结果。在结果BDD 510中,有两条从决策节点y1导向“1”端节点的路径:路径511对应于页面ID 001,路径512对应于页面ID 010。同时,只有这两个标识网页A和B的页面ID包括在结果BDD 510中,因为所有其它路径均导向“0”端节点,这表明结果BDD 500所表示的布尔函数将分配给三个变量y1、y2和y3的所有其它值评估为“假”。
图5B例示了结果BDD 520,该结果BDD 520表示包括三个网页A、C和D的针对搜索查询“DOG FOOD”的搜索结果。在结果BDD 520中,有三条从决策节点y1导向“1”端节点的路径:路径521对应于页面ID 001,路径522对应于页面ID 011,路径523对应于页面ID 100。同时,只有这三个标识网页A、C和D的页面ID包括在结果BDD 520中,因为所有其它路径均导向“0”端节点。
在特定的实施方式中,如果一个搜索结果只包括一个网页,那么表示该搜索结果的结果BDD和表示该网页的页面BDD相同。例如,针对搜索查询“CAR”的搜索结果只包括一个网页:E。因此,表示针对搜索查询“CAR”的搜索结果的结果BDD和表示网页E的页面BDD 450相同。
如上所述,通过在互联网上针对搜索查询执行搜索,来获得针对该搜索查询的搜索结果。该搜索查询可能包含一个或更多个词,而该搜索结果可能包含一个或更多个网页。因此,搜索查询集合包含多个搜索查询,而对应的搜索结果集合包含针对这些搜索查询所获得的搜索结果。
在特定的实施方式中,把不同的各对对应的搜索查询和搜索结果表示为一个搜索元组(步骤130)。上文在步骤111中,对每个可出现在搜索查询中的词分配了一个词ID,在步骤121中,对每个可包括在搜索结果中的网页分配了一个页面ID。因此,在特定的实施方式中,表示一对对应的搜索查询和搜索结果的搜索元组可以包括搜索查询中出现的词的词ID,接着是搜索结果中包括的网页的页面IDs。在特定的实施方式中,词ID出现在搜索元组中的顺序与对应的词出现在搜索查询中的顺序相同。下面的表4包含了表1例示的三对对应的搜索查询和搜索结果,以及它们的搜索元组。
表4、搜索查询、搜索结果和搜索元组
搜索查询 | 搜索结果(网页) | 搜索元组(词ID;页面ID) |
CAT FOOD | A、B | <10、12;1、2> |
DOG FOOD | A、C、D | <11、12;1、3、4> |
CAR | E | <13;5> |
在特定的实施方式中,通过组合对应的查询BDD和结果BDD利用一个不同的BDD,来表示与不同的一对对应的搜索查询和搜索结果对应的每个搜索元组(步骤131)。为了区别起见,把表示搜索元组的BDD称为“元组BDD”。前面在步骤113中,为搜索查询集合中的每一个搜索查询构造了一个不同的查询BDD,在步骤123中,为对应的搜索结果集合中的每一个搜索结果构造了一个不同的结果BDD。在特定的实施方式中,通过对表示搜索查询的查询BDD和表示搜索结果的结果BDD执行逻辑“与”运算,来构造元组BDD,该元组BDD表示包括了一对对应的搜索查询和搜索结果的搜索元组。
在表1所例示的示例中,通过对表示搜索查询“CAT FOOD”的查询BDD310和表示包括了网页A和B的搜索结果的结果BDD 510执行“与”运算,来构造图6A所例示的表示搜索元组<10、12;1、2>的元组BDD 610。如上所述,为了对查询BDD 310和结果BDD 510执行“与”运算,用结果BDD 510来替换查询BDD 310中的“1”端节点,以获得元组BDD 610。在元组BDD 610中,有两条路径611和612从决策节点x11导向“1”端节点。
以路径611为例。对于路径611上的十一个决策节点x11、x12、x13、x14、x31、x32、x33、x34、y1、y2和y3,它们对于路径611的二进制值是1-0-1-0-1-1-0-0-0-0-1。前四个二进制数位,1-0-1-0,是词“CAT”的词ID;中间的四个二进制数位,1-1-0-0,是词“FOOD”的词ID。因此,前八个二进制数位,1-0-1-0-1-1-0-0,合起来表示搜索查询“CAT FOOD”。最后三个二进制数位,0-0-1,是网页A的页面ID。路径611导向“1”端节点的事实表明,网页A包括在针对搜索查询“CAT FOOD”获得的搜索结果中,其中网页A由路径611中一些决策节点(例如,决策节点y1、y2和y3)的值来标识,搜索查询“CAT FOOD”由路径611的一些其他的节点(例如,x11、x12、x13、x14、x31、x32、x33和x34)来标识。
对于路径612,路径612上的十一个决策节点的二进制值是1-0-1-0-1-1-0-0-0-1-0。前八个二进制数位,1-0-1-0-1-1-0-0,一起表示搜索查询“CATFOOD”,这与路径611上一样,因为元组BDD 610表示包括搜索查询“CATFOOD”的搜索元组。最后三个二进制数位,0-1-0,是网页B的页面ID。由于网页B包括在针对搜索查询“CAT FOOD”而获得的搜索结果中,所以路径611导向“1”端节点。
在特定的实施方式中,在元组BDD中,路径导向“1”端节点表明,由该路径上的一些决策节点的值所标识的网页,包括在与由该同一路径上的其它一些决策节点的值所标识的搜索查询对应的搜索结果中。
类似地,通过对表示搜索查询“DOG FOOD”的查询BDD 320和表示包括了网页A、C和D的搜索结果的结果BDD 520执行“与”运算,来构造图6B所例示的表示搜索元组<11、12;1、3、4>的元组BDD 620。在元组BDD 620中,因为在针对搜索查询“DOG FOOD”的搜索结果中包括有三个网页A、C和D,所以有三条路径,即路径621、622和623,从决策节点x21导向“1”端节点。
通过对表示词“CAR”的词BDD 240(和针对搜索查询“CAR”的搜索BDD相同)和表示网页E的页面BDD 450(和表示针对搜索查询“CAR”而获得的搜索结果的结果BDD相同)执行“与”运算,来构造图6C所例示的表示搜索元组<13;5>的元组BDD 630。在元组BDD 630中,有一条路径,即路径631,从决策节点x41导向“1”端节点。路径631只有七个决策节点,因为搜索查询“CAR”只包含一个词。
在特定的实施方式中,一旦构造了各单独元组BDD,通过组合所有单独元组BDD,利用一个BDD来表示整组搜索查询和对应的整组搜索结果(步骤140)。在特定的实施方式中,通过对所有单独元组BDD执行逻辑“或”运算来构造该BDD。在这个BDD中,任何导向“1”端节点的路径均表明,由该路径上的一些决策节点的值所标识的网页,包括在与由该同一路径上的其它一些决策节点的值所标识的搜索查询对应的搜索结果中。
表1中例示的示例只有四个区别词和五个区别网页,然而,各种BDD的大小迅速地增加。在实践中,当缓存可能包括成百甚至成千个不同的词和网页的对应的搜索查询集合和搜索结果集合时,最终BDD的大小可能变得非常大。BDD往往在共享最小时遭受空间崩溃。
在特定的实施方式中,可以对BDD应用各种BDD缩减规则来减小BDD的大小(步骤150)。现有的BDD缩减规则包括合并任何同构子图,消除具有两个同构子节点的任何决策节点,等等。在特定的实施方式中,也可以对各种中间BDD,比如查询BDD、结果BDD或者元组BDD,应用各种BDD缩减规则。在特定的实施方式中,无论何时必要,都可对各种BDD应用合适的BDD缩减规则,来最大限度地减小BDD的大小。
于是,作为一种缓存搜索查询集合和对应的搜索结果集合的方式,可以存储BDD(步骤151)。
在一些情况下,可以根据现有的BDD分割规则来分割BDD,使得子BDD大小的总和小于原始BDD的大小。在特定的实施方式中,可将BDD分割成两个或更多个子BDD(步骤160),并且代替存储一个BDD,而存储这些子BDD(步骤161)。在特定的实施方式中,BDD的分割可以基于搜索查询的类别来进行。在表1所例示的示例中,两个搜索查询“CAT FOOD”和“DOG FOOD”涉及宠物食品,而另一个搜索查询“CAR”涉及机动车。因此,一种对表示这三个搜索元组的BDD进行分割的方式是分割为两个子BDD,一个针对宠物食品相关搜索查询,另一个针对机动车相关搜索查询。
在实践中,可以根据任何合适的标准,将一个BDD表示的搜索查询分成任何数量的类别。搜索查询类别的示例可以包括但不限于“体育”、“政治”、“旅游”、“健康”、“天气”、“财务”等。当对每个BDD加入信息和从每个BDD获取信息时,更小的子BDD可以导致更有效率的查找时间。
图1逐步骤例示了BDD的构造,该BDD可以用来表示、从而缓存搜索查询集合和通过对每个搜索查询执行互联网搜索而获得的对应的搜索结果集合。在实践中,根据所述搜索查询集合和所述对应的搜索结果集合以及要构造的BDD,可能绕过一些特定的步骤。在最终BDD中,导向“1”端节点的路径表明,由该路径上的一些决策节点的值所标识的网页,包括在与由该同一路径上的其他一些决策节点的值所标识的搜索查询对应的搜索结果中。
BDD是具有特定格式的数据结构.它表示具有一个或更多个变量的布尔函数f,每个变量可能具有值0或值1.当用图形表示时,函数f的每个变量可以表示为一个决策节点,每个决策节点有两条边:“0”边和“1”边.当在该BDD遍历一条路径时,沿着从决策节点起的“0”边表明由决策节点表示的变量具有0值,而沿着从决策节点起“1”边表明由决策节点表示的变量具有1值.导向“0”端节点的路径表明,对于分配给由该路径上的决策节点表示的变量的值,布尔函数f评估为0.导向“1”端节点的路径表明,对于分配给由该路径上的决策节点表示的变量的值,布尔函数f评估为1.
在特定的实施方式中,要由BDD表示的搜索查询集合和对应的搜索结果集合的数据可能需要加以修改,以使它们适合于BDD数据结构的格式。在特定的实施方式中,搜索查询集合中的每一个搜索查询都应该具有相同数量的词。如果一个特定的搜索查询具有的词数比要求的少,那么就添加“0”数位,来表示缺少的词。设k为每一个搜索查询中的词数,此处k=1、2、……、n。在特定的实施方式中,k的值等于搜索查询集合中具有最多词数的那个搜索查询中的词数。
在表1所例示的示例中,k的值是2。搜索查询“CATFOOD”和“DOG FOOD”都有两个词。然而,搜索查询“CAR”只有一个词。因此,可以对搜索查询“CAR”一个“0”,以补足第二个词。如表2中所示,每个二进制格式的词ID有四个二进制数位。因此,为了以二进制格式表示表1中的各搜索查询,使用了八个二进制数位。为了区别起见,把标识搜索查询的组合词ID称为“查询ID”。另外,如表3中所示,每个二进制格式的页面ID有三个二进制数位。因此,为了以二进制格式表示一对对应的搜索查询和网页,使用了十一个二进制数位。下面的表5例示了各对对应的搜索查询和网页以及它们的二进制表示。
表5、搜索查询、网页和二进制表示
搜索查询 | 网页 | 二进制表示 |
CATFOOD | A | 1-0-1-0-1-1-0-0-0-0-1 |
CATFOOD | B | 1-0-1-0-1-1-0-0-0-1-0 |
DOGFOOD | A | 1-0-1-1-1-1-0-0-0-0-1 |
DOGFOOD | C | 1-0-1-1-1-1-0-0-0-1-1 |
DOGFOOD | D | 1-0-1-1-1-1-0-0-1-0-0 |
CAR | E | 0-0-0-0-1-1-0-1-1-0-1 |
每个二进制数位由一个在BDD中成为决策节点的变量表示。设变量x1、x2、x3、x4、x5、x6、x7和x8表示对应于搜索查询的前八个二进制数位,并设变量y1、y2和y3表示对应于网页的最后三个二进制数位。图7A例示了如表1中例示的表示搜索查询集合和对应的搜索结果集合的BDD 700。在BDD 700中,有六条路径701、702、703、704、705和706导向“1”端节点,每条路径表示表5中例示的不同的一对对应的搜索查询和网页.所有其他路径导向“0”端节点.因此,路径701表明网页A包括在针对搜索查询“CAT FOOD”的搜索结果中;路径702表明网页B包括在针对搜索查询“CAT FOOD”的搜索结果中;路径703表明网页A包括在针对搜索查询“DOG FOOD”的搜索结果中;路径704表明网页C包括在针对搜索查询“DOG FOOD”的搜索结果中;路径705表明网页D包括在针对搜索查询“DOG FOOD”的搜索结果中;路径706表明网页E包括在针对搜索查询“CAR”的搜索结果中。
如上所述关于图1中步骤150,可以对BDD应用各种BDD缩减规则以减小BDD的大小。图7B例示了BDD 750,该BDD 750表示对BDD 700应用缩减规则后的结果。
一旦针对搜索查询集合和对应的搜索结果集合构造出一个BDD,可能需要对该BDD加以修改,比如向该BDD添加一对新的对应的搜索查询和搜索结果,或者从该BDD删去现有的一对对应的搜索查询和搜索结果。
图8A例示了根据特定实施方式,向表示搜索查询集合和对应的搜索结果集合的BDD添加一对新的对应的搜索查询和搜索结果的示例方法。
这对新的对应的搜索查询和搜索结果,可以使用包括该搜索查询和搜索结果的新的搜索元组来表示(步骤810)。如前所述,该搜索查询可能包括一个或更多个词,每个词都被分配了一个词ID。该搜索结果可能包括一个或更多个网页,每个网页都被分配了一个页面ID。这个新的搜索元组可以利用在图1中的步骤130所描述的过程来构造。
可以用一个新的元组BDD来表示这个新的搜索元组(步骤812)。这个新的元组BDD可以利用在图1中的步骤131所描述的过程来构造。
为了向所述BDD添加该新的元组BDD,对该新的元组BDD和该BDD执行“或”运算(步骤814),这和在图1中的步骤140所描述的过程类似。
在特定的实施方式中,可以对BDD应用各种BDD缩减规则以尽可能减小BDD的大小。
图8B例示了根据特定实施方式,从表示搜索查询集合和对应的搜索结果集合的BDD删去现有的一对对应的搜索查询和搜索结果的示例方法。
BDD上的现有的一对对应的搜索查询和搜索结果已经具有一个正在构造的元组BDD。在特定的实施方式中,对这个表示该现有的一对对应的搜索查询和搜索结果的元组BDD取反(步骤820)。在特定的实施方式中,可以通过调换所有“0”端节点的指引和“1”端节点的指引,和相反的过程,来对一个BDD取反。
为了从该BDD删去现有的这对对应的搜索查询和搜索结果,对该被取反的元组BDD和该BDD执行“与”运算(步骤822)。被取反的元组BDD由此抵消了表示该BDD中所述一对对应的搜索查询和搜索结果的元组BDD。
BDD具有广泛的各种潜在应用,特别是在计算机科学的许多领域内。在特定的实施方式中,如参照图1所述,可以使用BDD来缓存搜索查询集合和对应的搜索结果集合。可以使用参照图8A和图8B所描述的方法来更新BDD,例如,向该BDD添加新的搜索结果,或者从该BDD删去旧的搜索结果。
搜索是人们在互联网上执行的最普通的活动。图9例示了一个示例网络环境910,在该示例网络环境910中,人们可以在互联网上搜索信息。
系统910包括网络912,网络912将一个或更多个客户端914、一个或更多个WEB服务器916以及一个应用服务器918相互耦接.在特定的实施方式中,网络912是内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、城域网(MAN)、互联网的一部分,或者另外一个网络912或者两个或更多个这样的网络912的组合.本公开考虑了任何合适的网络912.一个或更多个链路920将客户端914、WEB服务器916或应用服务器918耦接到网络912.在特定的实施方式中,一个或更多个链路920各包括一个或更多个有线、无线或光纤链路920.在特定的实施方式中,一个或更多个链路920各包括内联网、外联网、虚拟专用网络(VPN)、LAN、WLAN、WAN、MAN、互联网的一部分,或者另外一个链路920或者两个或更多个这样的链路920的组合.本公开考虑了任何将客户端914、WEB服务器916和应用服务器918耦接到网络912的合适链路920.
在特定的实施方式中,客户端914使得用户能够在该客户端914处访问驻留WEB服务器916上的网页。作为一个示例而非限制,客户端914可以是计算机系统,比如拥有WEB浏览器的合适的台式计算机系统、笔记本计算机系统或者移动电话。客户端914处的用户可以输入统一资源定位符(URL)或其他指引该WEB浏览器到WEB服务器916的地址,从而该WEB浏览器可以产生超文本传输协议(HTTP)请求并向WEB服务器916传送该HTTP请求。WEB服务器916可以接受该HTTP请求,并响应于该HTTP请求,产生和向客户端914传送超文本标记语言(HTML)文件。这个来自WEB服务器916的HTML文件可以是客户端914处的WEB浏览器可呈现给用户的网页。本公开考虑了任何合适的网页。作为示例而非限制,网页可以是可扩展标记语言(XML)文件或者可扩展超文本标记语言(XHTML)文件。此外,本公开考虑了任何合适的对象,而不局限于驻留在WEB服务器916上的网页。作为示例而非限制,在适当情况下,本公开考虑了可执行文件、诸如MICROSOFT WORD文档和可移植文档格式(PDF)文档的文件,或者其它驻留在数据库服务器、文件服务器、点对点网络或其它地方处的对象。
在特定的实施方式中,WEB服务器916包括一个或更多个服务器。本公开考虑了任何合适的WEB服务器916。此外,本公开考虑了任何合适的客户端914。作为示例而非限制,除具有用于访问驻留在WEB服务器916上的网页的WEB浏览器外,或者作为对此的替换,客户端914可以具有一个或更多个应用来访问驻留在一个或更多个数据库服务器、文件服务器、点对点网络或其它地方处的对象。
响应于用户在客户端914处的输入,客户端914可以产生一个包含一个或更多个特定关键词的针对网页的查询,并把该查询传送给应用服务器918。这个包括一个或更多个词的查询可以被称为“搜索查询”。
在特定的实施方式中,应用服务器918包括硬件、软件、或者嵌入式逻辑组件或者两个或更多个这样的组件的组合,用来接收和应答来自客户端914的查询。作为示例而非限制,应用服务器918可以接收来自客户端914的、包含一个或更多个特定关键词的、针对网页的搜索查询,接受该查询,并访问WEB搜索引擎922来运行该查询并产生应答该查询的搜索结果。搜索结果可以包括一个或更多个合适的网页。应用服务器918可以把该搜索结果传送给客户端914以呈现给用户。在特定的实施方式中,应用服务器918包括一个或更多个服务器。本公开考虑了任何合适的应用服务器918。作为示例而非限制,应用服务器918可以包括目录服务器,该目录服务器提供使客户端914处的用户能够集中(centrally)搜索分布式网络(如内联网或外联网)上的对象的接入点。
在特定的实施方式中,WEB搜索引擎922包括硬件、软件、或者嵌入式逻辑组件或两个或更多个这样的组件的组合,用来产生和返回对来自客户端914的搜索查询进行应答的标识网页的搜索结果.本公开考虑了任何合适的WEB搜索引擎922.作为示例而非限制,WEB搜索引擎922可以是BAIDU、GOOGLE、LIVE SEARCH或YAHOO!SEARCH。
在特定的实施方式中,为了运行查询和产生应答该查询的搜索结果,WEB搜索引擎922访问WEB搜索数据928。作为示例而非限制,网络搜索数据928可以包括驻留在WEB服务器916中的网页的反向索引(inverted index)。如下所述,每个反向索引可以包括多组列表,每组列表对应于一个唯一的关键词。索引引擎924可以产生一个或更多个反向索引,决策图引擎926可以产生决策图,比如表示反向索引列表的紧凑决策图,如下所述。决策图可以压缩这些列表以帮助存储或处理。索引引擎924、决策图引擎926、或者这二者一起可以操作反向索引或其列表以便于进行WEB搜索引擎922运行的查询以及搜索结果的产生。在特定的实施方式中,索引引擎924包括硬件、软件、或者嵌入式逻辑组件或两个或更多个这样的组件的组合,用来产生和操作反向索引。在特定的实施方式中,决策图引擎926包括硬件、软件、或者嵌入式逻辑组件或两个或更多个这样的组件的组合,用来产生表示反向索引列表的决策图和操作所表示的列表。在特定的实施方式中,WEB搜索引擎922、索引引擎924和决策图引擎926在逻辑上或物理上彼此分开。在特定的实施方式中,WEB搜索引擎922和索引引擎924在功能上、逻辑上或者物理上彼此结合。作为示例而非限制,索引引擎924可以在功能上、逻辑上或者物理上包括WEB搜索引擎922。在特定的实施方式中,索引引擎924和决策图引擎926在功能上、逻辑上或者物理上彼此结合。作为示例而非限制,索引引擎924可以在功能上、逻辑上或者物理上包括决策图引擎926。本公开考虑了WEB搜索引擎922、索引引擎924和决策图引擎926之间的任何合适的功能上、逻辑上或者物理上的排布结构。
在特定的实施方式中,决策图引擎保持表示搜索查询集合和通过WEB搜索引擎922获得的对应搜索结果集合的BDD。该BDD可以存储在WEB搜索数据928中。每当WEB搜索引擎922响应于新的搜索查询而获得新的搜索结果时,决策图引擎926就相应地更新存储在WEB搜索数据928中的该BDD。以后可以使用该存储的BDD来对后来的搜索查询提供搜索结果。
例如,考虑表1中例示的搜索查询“CAT FOOD”。由于很多人把CAT作为他们的宠物,所以很可能在很多情况下人们在互联网上搜索关于CAT FOOD的信息。一方面,每当应用服务器918从任何客户端914接收到查询“CATFOOD”的请求时,WEB搜索引擎922可以执行该搜索过程以产生针对该搜索查询“CAT FOOD”的搜索结果。然而,这可能不是非常有效率,特别是因为可能要花费一些时间来在网络912上运行一个完整的搜索以找到所有可能包含CAT FOOD信息的网页。
另一方面,每当应用服务器918从任何客户端914接收到查询“CAT FOOD”的请求时,代替让WEB搜索引擎922执行该搜索过程,而可以首先处理WEB搜索数据928中存储的BDD。图10例示了利用存储的BDD来产生针对新搜索查询的新搜索结果的示例方法。此外,该BDD表示搜索查询集合和对应的搜索结果集合。
在接收到新的搜索查询(步骤1010)后,如在图1的步骤110中所述,确定是否该新的搜索查询中的所有词均可在从BDD表示的搜索查询集合中所获得的区别词集合中找到(步骤1020)。新的搜索查询和其他的搜索查询类似,包括一个或更多个词。
如果新的搜索查询中的任一词均不能在所述区别词集合中找到(步骤1020,“否”),那么该新的搜索查询就不在BDD表示的所述搜索查询集合中,因为新的搜索查询包括至少一个在BDD表示的任何搜索查询集合中先前没有的新词。在这种情况下,BDD中没有为缓存针对该新的搜索查询的搜索结果。对在新的搜索查询中找到的每个新词分配一个新的词ID(步骤1022),并将这些新词添加到所述区别词集合中(步骤1023)。从这里,过程进行到步骤1060,步骤1060将在下文描述。
另一方面,如果新的搜索查询中的所有词均可在所述区别词集合中找到(步骤1020,“是”),那么该新的搜索查询中的每一个词已经被分配了一个词ID。将该新的搜索查询中的词和它们已有的词ID关联起来,以获得针对该新的搜索查询的查询ID(步骤1021)。
例如,考虑表示表1所举示例的BDD。如果新的搜索查询是“CAR”,则词“CAR”可在表1中的那三个搜索查询中出现的词集合中找到。BDD中会缓存有针对搜索查询“CAR”的搜索结果。另一方面,如果新的搜索查询是“卡车”,则词“卡车”在表1中的那三个搜索查询中出现的词集合中没有找到。从而,BDD中没有缓存针对搜索查询“卡车”的搜索结果。
对存储的BDD进行遍历(步骤1030)。该BDD可能有很多条路径,一些导向“0”端节点,另一些导向“1”端节点。在每条路径上,有一个或更多个决策节点。对于BDD中每一条导向“1”端节点的路径,如果该路径上的一些节点的值表示所述新的搜索查询,那么就把由该路径上的一些其他决策节点的值所表示的网页包括在针对该新的搜索查询的新的搜索结果中(步骤1040)。
针对BDD中各路径上的导向“1”端节点的决策节点的二进制值,来比对新的搜索查询中的词的词ID的二进制数位。例如,考虑图7中例示的路径706,其导向“1”端节点。
假设新的搜索查询是“CAR”。如表2中所示,“CAR”的二进制格式词ID是1101。因为BDD 700被构造为所有的搜索查询都有两个词,而搜索查询“CAR”只有一个词,所以添加了“0”数位来补足第二个词。因此,搜索查询“CAR”的二进制表示就成了0-0-0-0-1-1-0-1。遍历下行路径706,针对路径706上的决策节点的值来比对表示新的搜索查询的二进制数位。具体来说,决策节点x1的值是0;决策节点x2的值是0;决策节点x3的值是0;决策节点x4的值是0;决策节点x5的值是1;决策节点x6的值是1;决策节点x7的值是0;决策节点x8的值是1。此时,针对二进制表示是0-0-0-0-1-1-0-1的搜索查询“CAR”,找到了匹配。路径706上最后三个决策节点y1、y2和y3的值是1-0-1,这是网页E的页面ID,如表3中所示。因此,网页E包括在针对搜索查询“CAR”的搜索结果中。
另选的是,假设新的搜索查询是“FOOD CAR”。虽然这个词组没有太多的实际意义,但可用它来解释匹配过程。在新的搜索查询中的这两个词,“FOOD”和“CAR”,都能在所述区别词集合中找到,因此,步骤1020评估为“真”(步骤1020,“是”)。词“FOOD”的词ID是1100,词“CAR”的词ID是1101,如表2中所示。因此,表示搜索查询“FOOD CAR”的二进制数位是1-1-0-0-1-1-0-1,组合了两个词ID。
搜索BDD 700上所有导向“1”端节点的路径,没有找到与二进制序列1-1-0-0-1-1-0-1相匹配的任何路径上的任何变量值组合,因为BDD 700中没有缓存搜索查询“FOOD CAR”。在这种情况下,没有找到任何对应于搜索查询“FOOD CAR”的网页。
一旦遍历完整个BDD,就确定是否找到针对新的搜索查询的搜索结果(步骤1050).在特定的实施方式中,如果根据匹配过程在BDD中没有找到针对新的搜索查询的网页,那么就没有找到针对新的搜索查询的搜索结果.相反,如果根据匹配过程在BDD中找到了针对新的搜索查询的一个或更多个网页,那么就找到了针对新的搜索查询的搜索结果.
如果找到了针对新的搜索查询的搜索结果(步骤1050,“是”),则将该搜索结果传送给请求该搜索的用户(步骤1070)。另一方面,如果没有找到针对新的搜索查询的搜索结果(步骤1050,“否”),则过程进行到步骤1060。
使用任何合适的搜索引擎来针对新的搜索查询在互联网上进行搜索(步骤1060)。作为响应,产生了新的搜索结果,它可以包括一个或更多个网页。确定是否新的搜索结果中的所有网页都能够在BDD表示的搜索结果所包括的区别网页集合中找到(步骤1061),如图1中的步骤120所述。
如果新的搜索结果中的任何一个网页不能在所述区别网页集合中找到(步骤1601,“否”),那么就给每一个新的网页分配一个新的页面ID(步骤1062),并把这些新的网页添加到所述区别网页集合中(步骤1603)。另一方面,如果新的搜索结果中的所有网页都能够在所述区别网页集合中找到(步骤1061,“是”),那么过程绕过步骤1062和1063,直接进行到步骤1064。对于每一个能在所述区别网页集合中找到的网页,将现有的页面ID和这些网页关联起来(步骤1064)。
通过图1中的步骤130和步骤131所描述的过程,用一个新的元组BDD来表示这对新的搜索查询和新的搜索结果(步骤1065)。通过图8A中描述的过程,把这个新的元组BDD添加到BDD中(步骤1066)。这对新的搜索查询和新的搜索结果现在也被缓存在BDD中,使得随后也可以使用该BDD来为这个搜索查询提供搜索结果。将新的搜索结果传送给请求该搜索的用户(步骤1070)。
特定的实施方式可以实现为硬件、软件或者硬件和软件的组合。作为示例子而非限制,一个或更多个计算机系统可以执行特定的逻辑或者软件来执行这里描述或例示的一个或更多个过程的一个或更多个步骤。在适当情况下,一个或更多个计算机系统可以是整体式或分布式的,跨布多个计算机系统或多个数据中心。本公开考虑了任何合适的计算机系统。在特定的实施方式中,执行这里描述或例示的一个或更多个过程的一个或更多个步骤,并不一定需要限于一个或更多个特定的地理位置,也并不一定需要有时间上的限制。作为示例而非限制,一个或更多个计算机系统可以“实时”、“离线”、以“批处理模式”或者另外必要时按照前述的合适组合,来执行它们的功能。在适当情况下,一个或更多个计算机系统可以在不同的时间、在不同的位置、使用不同的处理,来执行它们的功能的一个或更多个部分。这里,在适当的情况下,提及逻辑可以包括软件,反之亦然。在适当的情况下,提及软件可以包括一个或更多个计算机程序,反之亦然。在适当的情况下,提及软件可以包括数据、指令或两者,反之亦然。类似地,在适当的情况下,提及数据可以包含指令,反之亦然。
一个或更多个计算机可读存储介质可以存储或者以其它方式包含用于实现特定实施方式的软件.在适当情况下,计算机可读介质可以是任何能够携带、传递、包含、保持、维持、传播、保留、存储、传送、传输、或者以其它方式包含软件的介质.在适当情况下,计算机可读介质可以是生物的、化学的、电子的、电磁的、红外的、磁的、光学的、量子的、或其他合适的介质,或者两个或更多个这些介质的组合.计算机可读介质可以包括一个或更多个纳米级元件或以其它方式实现纳米级设计或制造.计算机可读存储介质的示例包括但不限于,光盘(CD)、现场可编程门阵列(FPGA)、磁盘、软磁盘、硬盘、全息存储装置、集成电路(IC)(比如专用集成电路(ASIC)、磁带、高速缓存、可编程逻辑器件(PLD)、随机存取存储器(RAM)装置、只读存储器(ROM)装置、半导体存储器装置以及其他合适的计算机可读存储介质.
在适当情况下,用于实现特定实施方式的软件可以用任何合适的(可以是面向过程或面向对象的)编程语言或者这些编程语言的组合来编写。在适当情况下,任何合适种类的计算机系统(比如单处理器或多处理器计算机系统)可以执行用于实现特定实施方式的软件。在适当情况下,通用计算机系统可以执行用于实现特定实施方式的软件。
例如,图11例示了适合于实现特定实施方式的一个或更多个部分的示例计算机系统1100。虽然本公开描述并例示了以特定配置具有特定组件的特定计算机系统1100,但本公开考虑了以任何合适配置具有任何合适组件的任何合适计算机系统。此外,计算机系统1100可以有任何合适的物理的形式,例如,一个或更多个集成电路(IC),一个或更多个印刷电路板(PCB),一个或更多个手持设备或其他设备(比如移动电话或PDA),一个或更多个个人电脑,或者一个或更多个超级计算机。
计算机系统1100可以具有一个或更多个输入装置1102(可以包括键区、键盘、鼠标、触针等),一个或更多个输出装置1104(可以包括一个或更多个显示器、一个或更多个扬声器、一个或更多个打印机等),一个或更多个存储装置1106,以及一个或更多个存储介质1108。输入装置1102可以在计算机系统1100外部或内部。输出装置1104可以在计算机系统1100外部或内部。存储装置1106可以在计算机系统1100外部或内部。存储介质1108可以在计算机系统1100外部或内部。
系统总线1110将计算机系统1100的子系统彼此耦合。这里,提及总线包括一个或更多个服务于公共功能的数字信号线。本公开考虑了任何合适的系统总线1110,包括具有任何合适总线架构的任何合适总线结构(比如一个或更多个存储器总线,一个或更多个外设总线,一个或更多个局域总线,或者前述的组合)。总线架构的示例包括但不限于工业标准体系结构(ISA)总线,增强型ISA(EISA)总线,微通道体系结构(MCA)总线,视频电子标准协会局域(VLB)总线,外设部件互连(PCI)总线,PCI快速总线(PCI-X),以及加速图形端口(AGP)总线。
计算机系统1100包括一个或更多个处理器1112(或者中央处理单元(CPU))。处理器1112可以包含用来临时本地存储指令、数据或计算机地址的缓存1114。处理器1112耦接到包括存储器1116在内的一个或更多个存储装置。存储器1116可以包括随机存取存储器(RAM)1118和只读存储器(ROM)1120。数据和指令可以在处理器1112和RAM 1118之间双向传输。数据和指令可以从ROM 1120单向传送到处理器1112。RAM 1118和ROM 1120可以包括任何合适的计算机可读存储介质。
计算机系统1100包括与处理器1112双向耦合的固定存储部1122。固定存储部1122可以通过存储控制单元1107耦合到处理器1112。固定存储部1122可以提供额外的数据存储容量,并且可以包括任何合适的计算机可读存储介质。固定存储部1122可以存储操作系统(OS)1124,一个或更多个可执行文件(EXEC)1126,一个或更多个应用或程序1128,数据1130等。固定存储部1122典型地是比主存储部慢的辅助存储介质(比如硬盘)。在合适情况下,固定存储部1122存储的信息可以作为虚拟存储合并到存储器1116中。
处理器1112可以耦合到多种接口,如图形控制部1132、视频接口1134、输入接口1136、输出接口1137以及存储接口1138,这些接口又分别可以合适的设备耦合.输入或输出装置的示例包括但不限于视频显示器、跟踪球、鼠标、键盘、麦克风、触敏显示器、传感读卡器、磁带或纸带阅读器、写字板、触针、声音或手写识别器、生物特征阅读器,或者计算机系统.网络接口1140可以将处理器1112与另外的计算机系统或网络1142耦合起来.通过网络接口1140,在执行特定实施方式步骤的过程中,处理器1112可以从网络1142接收信息或向网络1142发送信息.特定的实施方式可以仅在处理器1112上执行.特定的实施方式可以在处理器1112上和在一起操作的一个或更多个远程处理器上执行.
在计算机系统1100连接到网络1142的网络环境中,计算机系统1100可以和连接到网络1142的其他设备通信。计算机系统1100可以通过网络接口1140而和网络1142通信。例如,计算机系统1100可以在网络接口1140处接收来自网络1142的形式为一个或更多个到来信息包的信息(比如来自另一设备的请求或响应),存储器1116可以存储该到来信息包以供随后处理。计算机系统1100可以从网络接口1140向网络1142发送形式为一个或更多个发出信息包的信息(比如向另一设备发出的请求或响应),存储器1116可以在发出之前存储该信息。根据特定的需要,处理器1112可以访问存储器1116中的到来或发出包以处理该包。
特定的实施方式包括一个或更多个计算机存储产品,这些计算机存储产品包括一个或更多个计算机可读存储介质,该计算机可读存储介质实现了用于执行本文描述或例示的一个或更多个过程的一个或更多个步骤的软件。在特定的实施方式中,介质的一个或更多个部分、软件或者它们二者可以专门设计和制造来执行本文描述或例示的一个或更多个过程的一个或更多个步骤。另外或者另选的是,在特定的实施方式中,介质的一个或更多个部分、软件或者它们二者可以是通用的,而不必设计和制造专用来执行本文描述或例示的过程。计算机可读存储介质的示例包括但不限于CD(比如CD-ROM)、FPGA、软盘、软磁盘、硬盘、全息存储装置、IC(比如ASIC)、磁带、缓存、PLD、RAM装置、ROM装置、半导体存储装置,以及其他合适的计算机可读存储介质。在特定的实施方式中,软件可以是可由编译器产生的机器代码,或者包含计算机可以使用解释器来执行的高级代码的一个或更多个文件。
作为示例而非限制,存储器1116可以包括一个或更多个实现软件的计算机可读存储介质,作为处理器1112执行该软件的结果,计算机系统1100可以提供本文描述和例示的特定功能。存储器1116可以存储该软件,而处理器1112可以执行该软件。存储器1116可以从实现有该软件的大容量存储装置1116中的计算机可读存储介质读取该软件,或者通过网络接口1140从一个或更多个其他源来读取该软件。当执行该软件时,处理器1112可以执行本文描述或例示的一个或更多个过程的一个或更多个步骤,根据具体的需要,这可能包括定义用于在存储器1116中进行存储的一个或更多个数据结构,和按照该软件的一个或更多个部分的指导来修改一个或更多个数据结构。另外或另选的是,作为在电路中硬布线或以其它方式实现的逻辑的结果,计算机系统1100可以提供本文描述或例示的特定功能,这可以代替软件或者和软件一起来执行本文描述或例示的一个或更多个过程的一个或更多个步骤。根据具体的需要,本公开包括硬件和软件的任何合适组合。
虽然本公开描述或例示了特定操作按特定顺序出现,但本公开考虑了任何合适操作按任何合适顺序出现.此外,本公开考虑了按任何合适顺序一次或更多次进行任何合适操作.虽然本公开描述或例示了特定操作按顺序出现,但在适当情况下,本公开也考虑了特定操作在大致同时出现.在适当情况下,本文描述或例示的任何合适操作或操作顺序可以被另外一个过程(如操作系统或内核)打断、延缓或者以其它方式控制.该行为可以在操作系统环境内操作,或者作为占据系统处理的所有或大部分的独立例程来操作.
本公开包括本领域技术人员针对本文的示例实施方式可想到的所有改变、替代、变型、变更和修改。类似地,在适当情况下,所附权利要求书包括本领域技术人员针对本文的示例实施方式可想到的所有改变、替代、变型、变更和修改。
Claims (65)
1.一种方法,该方法包括:
由一个或更多个计算机系统,构造多个第一二元决策图,各第一二元决策图分别表示多个词中的不同的一个,每个词具有唯一的词标识符,各第一二元决策图是根据该第一二元决策图表示的词的词标识符而构造的;
由所述一个或更多个计算机系统,构造多个第二二元决策图,各第二二元决策图表示多个搜索查询中的不同的一个,各搜索查询包括所述词中的一个或更多个词,各第二二元决策图是通过对表示由该第二二元决策图所表示的搜索查询中的词的第一二元决策图执行“与”运算而构造的;
由所述一个或更多个计算机系统,构造多个第三二元决策图,各第三二元决策图表示多个网页中的不同的一个,各网页具有唯一的页面标识符,各第三二元决策图是根据该第三二元决策图表示的网页的页面标识符而构造的;
由所述一个或更多个计算机系统,构造多个第四二元决策图,各第四二元决策图表示响应于所述搜索查询而产生的多个搜索结果中的不同的一个,各搜索结果包括所述网页中的一个或更多个网页,各第四二元决策图是通过对表示由该第四二元决策图所表示的搜索结果中的网页的第三二元决策图执行“或”运算而构造的;
由所述一个或更多个计算机系统,构造多个第五二元决策图,各第五二元决策图表示多个搜索元组中的不同的一个,各搜索元组包括一个不同的搜索查询和对应于该搜索查询的一个不同的搜索结果,各第五二元决策图是通过对表示搜索查询的第二二元决策图和表示由该第五二元决策图表示的搜索元组所包括的搜索结果的第四二元决策图执行“与”运算而构造的;以及
由所述一个或更多个计算机系统,通过对第五二元决策图执行“或”运算而构造出第六二元决策图,该第六二元决策图表示所述搜索查询和所述搜索结果。
2.根据权利要求1所述的方法,其中:
第六二元决策图包括:
二进制“0”端节点;
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点,且导向“0”端节点或“1”端节点,而且
对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括在针对由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
3.根据权利要求2所述的方法,该方法还包括:
由所述一个或更多个计算机系统,接收一新搜索查询,该新搜索查询包括所述词中的一个或多个词;
由所述一个或更多个计算机系统,对第六二元决策图进行搜索;
对于每条导向“1”端节点的路径,如果该路径上的搜索查询等于该新搜索查询,那么,由所述一个或更多个计算机系统,把该路径上的所有网页都包括到针对该新搜索查询的搜索结果中;以及
由所述一个或更多个计算机系统返回对该新搜索查询进行响应的搜索结果。
4.根据权利要求1所述的方法,其中,构造一个第一二元决策图包括:
以二进制格式表示该第一二元决策图表示的词的词标识符;
用多个变量表示所述词标识符中的多个二进制数位,每个变量表示一个不同的二进制数位;以及
以所述变量作为多个决策节点来构造该第一二元决策图。
5.根据权利要求1所述的方法,其中,构造一个第二二元决策图包括:按在该第二二元决策图表示的搜索查询中词的出现顺序,对表示所述词的第一二元决策图执行“与”运算。
6.根据权利要求1所述的方法,其中,构造一个第三二元决策图包括:
以二进制格式表示该第三二元决策图表示的网页的页面标识符;
用多个变量表示所述页面标识符中的多个二进制数位,每个变量表示一个不同的二进制数位;以及
以所述变量作为多个决策节点来构造该第三二元决策图。
7.根据权利要求1所述的方法,该方法还包括,由所述一个或更多个计算机系统,通过对第六二元决策图和表示新搜索元组的新的第五二元决策图执行“或”运算,对该第六二元决策图添加该新的第五二元决策图。
8.根据权利要求1所述的方法,该方法还包括,由所述一个或更多个计算机系统,从第六二元决策图上删除一个表示一个搜索元组的第五二元决策图,该步骤包括:
对该第五二元决策图取反;和
对该第六二元决策图和该被取反的第五二元决策图执行“与”运算。
9.根据权利要求1所述的方法,该方法还包括由所述一个或更多个计算机系统,使用一个或更多个二元决策图缩减规则,最大限度地缩减第六二元决策图。
10.根据权利要求1所述的方法,该方法还包括,由所述一个或更多个计算机系统,使用一个或更多个二元决策图缩减规则,最大限度地缩减第四二元决策图和各第五二元决策图。
11.根据权利要求1所述的方法,该方法还包括,由所述一个或更多个计算机系统,把第六二元决策图分割为多个第七二元决策图,其中所述多个第七二元决策图的大小总和小于该第六二元决策图的大小。
12.根据权利要求11所述的方法,该方法还包括,由所述一个或更多个计算机系统,存储所述多个第七二元决策图。
13.根据权利要求1所述的方法,该方法还包括,由所述一个或更多个计算机系统,存储第六二元决策图。
14.一种方法,该方法包括:
由一个或更多个计算机系统,分配多个词标识符,每个词标识符被分配给多个词中的一个不同的词,每个词在多个搜索查询中出现至少一次,每个搜索查询包括所述词中的一个或更多个词;
由所述一个或更多个计算机系统,分配多个页面标识符,每个页面标识符被分配给多个网页中的一个不同的网页,每个网页至少一次被包括在响应于所述搜索查询而产生的多个搜索结果中,每个搜索结果包括所述网页中的一个或更多个网页;
由所述一个或更多个计算机系统,获得多个查询标识符,每个查询标识符标识所述搜索查询中的一个不同的搜索查询,每个查询标识符是通过组合对在由该查询标识符所标识的搜索查询中包括的词进行标识的词标识符而获得的;以及
由所述一个或更多个计算机系统,构造一表示所述搜索查询和所述搜索结果的二元决策图,该二元决策图包括:
二进制“0”端节点;
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点,且导向“0”端节点或“1”端节点,每个决策节点以二进制格式表示一个查询标识符或一个页面标识符中的一个二进制数位,对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括针对在由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
15.根据权利要求14所述的方法,该方法还包括:
由所述一个或更多个计算机系统,接收一新搜索查询,该新搜索查询包括所述词中的一个或更多个词;
由所述一个或更多个计算机系统,通过组合对包括在该新搜索查询中的词进行标识的词标识符,获得针对该新搜索查询的新查询标识符;
由所述一个或更多个计算机系统,对该二元决策图进行搜索;
对于每条导向“1”端节点的路径,如果该路径上的搜索查询等于该新搜索查询,那么,由所述一个或更多个计算机系统,把该路径上的所有网页都包括到针对该新搜索查询的搜索结果中;以及
由所述一个或更多个计算机系统,返回对该新搜索查询进行响应的搜索结果。
16.根据权利要求14所述的方法,该方法还包括:
由所述一个或更多个计算机系统,构造表示第二搜索查询和响应于该第二搜索查询而产生的第二搜索结果的第二二元决策图,第二搜索查询包括所述词中的一个或更多个词,第二搜索结果包括所述网页中的一个或更多个网页;
由所述一个或更多个计算机系统,通过对所述二元决策图和第二二元决策图执行“或”运算,将第二二元决策图添加给所述二元决策图。
17.根据权利要求14所述的方法,该方法还包括:
由所述一个或更多个计算机系统,对表示一个搜索查询和响应于该搜索查询而产生的一个搜索结果的第三二元决策图取反;
由所述一个或更多个计算机系统,通过对该二元决策图和该被取反的第三二元决策图执行“与”运算,从该二元决策图删除该第三二元决策图。
18.根据权利要求14所述的方法,该方法还包括,由所述一个或更多个计算机系统,使用一个或更多个二元决策图缩减规则,最大限度地缩减该二元决策图。
19.根据权利要求14所述的方法,该方法还包括,由所述一个或更多个计算机系统,把该二元决策图分割为多个第四二元决策图,其中所述多个第四二元决策图的大小总和小于该二元决策图的大小。
20.根据权利要求19所述的方法,该方法还包括,由所述一个或更多个计算机系统,存储所述多个第四二元决策图。
21.根据权利要求14所述的方法,该方法还包括,由所述一个或更多个计算机系统存储该二元决策图。
22.一个或更多个计算机可读存储介质,其包括由一个或更多个计算机系统执行且在被执行时能够执行以下操作的软件:
构造多个第一二元决策图,各第一二元决策图表示多个词中的不同的一个,每个词具有唯一的词标识符,各第一二元决策图是根据该第一二元决策图表示的词的词标识符而构造的;
构造多个第二二元决策图,各第二二元决策图表示多个搜索查询中的不同的一个,各搜索查询包括所述词中的一个或更多个词,各第二二元决策图是通过对表示由该第二二元决策图所表示的搜索查询中的词的第一二元决策图执行“与”运算而构造的;
构造多个第三二元决策图,各第三二元决策图表示多个网页中的不同的一个,每个网页具有唯一的页面标识符,各第三二元决策图是根据该第三二元决策图表示的网页的页面标识符而构造的;
构造多个第四二元决策图,各第四二元决策图表示响应于所述搜索查询而产生的多个搜索结果中的不同的一个,每个搜索结果包括所述网页中的一个或更多个网页,各第四二元决策图是通过对表示由该第四二元决策图所表示的搜索结果中的网页的第三二元决策图执行“或”运算而构造的;
构造多个第五二元决策图,各第五二元决策图表示多个搜索元组中的不同的一个,每个搜索元组包括所述搜索查询中的一个不同的搜索查询和所述搜索结果中的对应于该搜索查询的一个不同的搜索结果,各第五二元决策图是通过对表示所述搜索查询的第二二元决策图和表示由该第五二元决策图表示的搜索元组所包括的搜索结果的第四二元决策图执行“与”运算而构造的;以及
通过对第五二元决策图执行“或”运算来构造第六二元决策图,该第六二元决策图表示所述搜索查询和搜索结果。
23.根据权利要求22所述的介质,其中:
第六二元决策图包括:
二进制“0”端节点;
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点且导向“0”端节点或“1”端节点,而且
对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括在针对由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
24.根据权利要求23所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备执行以下步骤:
接收一新搜索查询,该新搜索查询包括所述词中的一个或更多个词;
对第六二元决策图进行搜索;
对于每条导向“1”端节点的路径,如果该路径上的搜索查询等于该新搜索查询,那么,把该路径上的所有网页都包括到针对该新搜索查询的搜索结果中;以及
返回对该新搜索查询进行响应的搜索结果。
25.根据权利要求22所述的介质,其中,构造一个第一二元决策图包括:
以二进制格式表示由该第一二元决策图表示的词的词标识符;
用多个变量表示所述词标识符中的多个二进制数位,每个变量表示所述多个二进制数位中的一个不同的二进制数位;以及
以所述变量作为多个决策节点来构造该第一二元决策图。
26.根据权利要求22所述的介质,其中,构造一个第二二元决策图包括,按在该第二二元决策图表示的搜索查询中词的出现顺序,来对表示所述词的第一二元决策图执行“与”运算。
27.根据权利要求22所述的介质,其中,构造一个第三二元决策图包括:
以二进制格式表示由该第三二元决策图表示的网页的页面标识符;
用多个变量表示所述页面标识符中的多个二进制数位,每个变量表示所述多个二进制数位中的一个不同的二进制数位;以及
以所述变量作为多个决策节点来构造该第三二元决策图。
28.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备通过对第六二元决策图和表示新搜索元组的新第五二元决策图执行“或”运算,来向该第六二元决策图添加该新第五二元决策图。
29.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备从第六二元决策图删除表示一个搜索元组的一个第五二元决策图,该步骤包括:
对该第五二元决策图取反;和
对第六二元决策图和该被取反的第五二元决策图执行“与”运算。
30.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备使用一个或更多个二元决策图缩减规则来最大限度地缩减第六二元决策图。
31.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备使用一个或更多个二元决策图缩减规则来最大限度地缩减第四二元决策图和各第五二元决策图。
32.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备把第六二元决策图分割为多个第七二元决策图,其中所述多个第七二元决策图的大小总和小于该第六二元决策图的大小。
33.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备存储所述多个第七二元决策图。
34.根据权利要求22所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备存储第六二元决策图。
35.一个或更多个计算机可读存储介质,其包括由一个或更多个计算机系统执行时能够执行以下步骤的软件:
分配多个词标识符,每个词标识符被分配给多个词中的一个不同的词,每个词在多个搜索查询中出现至少一次,每个搜索查询包括所述词中的一个或更多个词;
分配多个页面标识符,每个页面标识符被分配给多个网页中的一个不同的网页,每个网页至少一次被包括在响应于所述搜索查询而产生的多个搜索结果中,每个搜索结果包括所述网页中的一个或更多个网页;
获得多个查询标识符,每个查询标识符标识所述搜索查询中的一个不同的搜索查询,每个查询标识符是通过组合对在由该查询标识符标识的搜索查询中所包括的词进行标识的词标识符而获得的;以及
构造表示所述搜索查询和所述搜索结果的二元决策图,该二元决策图包括:
二进制“0”端节点;
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点且导向“0”端节点或“1”端节点,每个决策节点以二进制格式表示一个查询标识符或一个页面标识符中的一个二进制数位,并且对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括在针对由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
36.根据权利要求35所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备执行以下步骤:
接收一新搜索查询,该新搜索查询包括所述词中的一个或更多个词;
通过组合对该新搜索查询中包括的词进行标识的词标识符,获得针对该新查询的新查询标识符;
对该二元决策图进行搜索;
对于每条导向“1”端节点的路径,如果该路径上的搜索查询等于该新搜索查询,那么,把该路径上的所有网页都包括到针对该新搜索查询的搜索结果中;以及
返回对该新搜索查询进行响应的搜索结果。
37.根据权利要求35所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备执行以下步骤:
构造表示第二搜索查询和响应于该第二搜索查询而产生的第二搜索结果的第二二元决策图,该第二搜索查询包括所述词中的一个或更多个词,该第二搜索结果包括所述网页中的一个或更多个网页;
通过对所述二元决策图和第二二元决策图执行“或”运算,向该二元决策图添加该第二二元决策图。
38.根据权利要求35所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备执行以下步骤:
对表示一个搜索查询和响应于该搜索查询而产生的一个搜索结果的第三二元决策图取反;
通过对所述二元决策图和该被取反的第三二元决策图执行“与”运算,从该二元决策图删除该第三二元决策图。
39.根据权利要求35所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备使用一个或更多个二元决策图缩减规则来最大限度地缩减该二元决策图。
40.根据权利要求35所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备把所述二元决策图分割为多个第四二元决策图,其中所述多个第四二元决策图的大小总和小于该二元决策图的大小。
41.根据权利要求40所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备存储所述多个第四二元决策图.
42.根据权利要求35所述的介质,其中,所述多个计算机可读指令在被执行时,还能够使一个或更多个计算设备存储所述二元决策图。
43.一种系统,该系统包括:
包括能够由一个或更多个处理器执行的指令的存储器;和
与该存储器相耦合且能够执行所述指令的一个或更多个处理器,所述一个或更多个处理器在执行所述指令时能够执行以下步骤:
构造多个第一二元决策图,各第一二元决策图表示多个词中的不同的一个,每个词具有唯一的词标识符,各第一二元决策图是根据该第一二元决策图表示的词的词标识符而构造的;
构造多个第二二元决策图,各第二二元决策图表示多个搜索查询中的不同的一个,每个搜索查询包括所述词中的一个或更多个词,各第二二元决策图是通过对表示由该第二二元决策图所表示的搜索查询中的词的第一二元决策图执行“与”运算而构造的;
构造多个第三二元决策图,各第三二元决策图表示多个网页中的不同的一个,每个网页具有唯一的页面标识符,各第三二元决策图是根据该第三二元决策图表示的网页的页面标识符而构造的;
构造多个第四二元决策图,各第四二元决策图表示响应于所述搜索查询而产生的多个搜索结果中的不同的一个,每个搜索结果包括所述网页中的一个或更多个网页,各第四二元决策图是通过对表示由该第四二元决策图所表示的搜索结果中的网页的第三二元决策图执行“或”运算而构造的;
构造多个第五二元决策图,各第五二元决策图表示多个搜索元组中的不同的一个,每个搜索元组包括一个不同的搜索查询和对应于该搜索查询的一个不同的搜索结果,各第五二元决策图是通过对表示所述搜索查询的第二二元决策图和表示由该第五二元决策图表示的搜索元组所包括的搜索结果的第四二元决策图执行“与”运算而构造的;以及
通过对第五二元决策图执行“或”运算来构造第六二元决策图,该第六二元决策图表示所述搜索查询和所述搜索结果。
44.根据权利要求43所述的系统,其中:
第六二元决策图包括:
二进制“0”端节点:
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点且导向“0”端节点或“1”端节点,而且
对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括在针对由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
45.根据权利要求44所述的系统,其中,所述一个或更多个处理器在执行所述指令时还能够执行以下步骤:
接收一新搜索查询,该新搜索查询包括所述词中的一个或更多个词;
对第六二元决策图进行搜索;
对于每条导向“1”端节点的路径,如果该路径上的搜索查询等于该新搜索查询,那么,把该路径上的所有网页都包括到针对该新搜索查询的搜索结果中;以及
返回对该新搜索查询进行响应的搜索结果。
46.根据权利要求43所述的系统,其中,构造一个第一二元决策图包括:
以二进制格式表示由该第一二元决策图表示的词的词标识符;
用多个变量来表示所述词标识符中的多个二进制数位,每个变量表示所述多个二进制数位中的一个不同的二进制数位;以及
以所述变量作为多个决策节点来构造该第一二元决策图。
47.根据权利要求43所述的系统,其中,构造一个第二二元决策图包括,按在该第二二元决策图表示的搜索查询中词的出现顺序,对表示所述词的第一二元决策图执行“与”运算。
48.根据权利要求43所述的系统,其中,构造一个第三二元决策图包括:
以二进制格式表示由该第三二元决策图表示的网页的页面标识符;
用多个变量来表示所述页面标识符中的多个二进制数位,每个变量表示所述多个二进制数位中的一个不同的二进制数位;以及
以所述变量作为多个决策节点来构造该第三二元决策图。
49.根据权利要求43所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够通过对第六二元决策图和表示新搜索元组的新第五二元决策图执行“或”运算,向该第六二元决策图添加该新第五二元决策图。
50.根据权利要求43所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够从第六二元决策图删除表示一个搜索元组的一个第五二元决策图,该步骤包括:
对该第五二元决策图取反;和
对该第六二元决策图和该被取反的第五二元决策图执行“与”运算。
51.根据权利要求43所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够使用一个或更多个二元决策图缩减规则来最大限度地缩减第六二元决策图。
52.根据权利要求43所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够使用一个或更多个二元决策图缩减规则来最大限度地缩减第四二元决策图和各第五二元决策图。
53.根据权利要求43所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够把第六二元决策图分割为多个第七二元决策图,其中所述多个第七二元决策图的大小总和小于该第六二元决策图的大小。
54.根据权利要求53所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够存储所述多个第七二元决策图。
55.根据权利要求43所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够存储第六二元决策图。
56.一种系统,该系统包括:
包括能够由一个或更多个处理器执行的指令的存储器;和
与所述存储器相耦合且能够执行所述指令的一个或更多个处理器,所述一个或更多个处理器在执行所述指令时能够执行以下步骤:
分配多个词标识符,每个词标识符被分配给多个词中的一个不同的词,每个词在多个搜索查询中出现至少一次,每个搜索查询包括所述词中的一个或更多个词;
分配多个页面标识符,每个页面标识符被分配给多个网页中的一个不同的网页,每个网页至少一次被包括在响应于所述搜索查询而产生的多个搜索结果中,每个搜索结果包括所述网页中的一个或更多个网页;
获得多个查询标识符,每个查询标识符标识所述搜索查询中的一个不同的搜索查询,每个查询标识符是通过组合对在该查询标识符标识的搜索查询中所包括的词进行标识的词标识符而获得的;以及
构造表示所述搜索查询和所述搜索结果的二元决策图,该二元决策图包括:
二进制“0”端节点;
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点且导向“0”端节点或“1”端节点,每个决策节点以二进制格式表示一个查询标识符或一个页面标识符的二进制数位,并且对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括在针对由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
57.根据权利要求56所述的系统,其中,所述一个或更多个处理器在执行所述指令时还能够执行以下步骤:
接收一新搜索查询,该新搜索查询包括所述词中的一个或更多个词;
通过组合对该新搜索查询中包括的词进行标识的词标识符,获得针对该新搜索查询的新查询标识符;
对该二元决策图进行搜索;
对于每条导向“1”端节点的路径,如果该路径上的搜索查询等于该新搜索查询,那么,把该路径上的所有网页都包括到针对该新搜索查询的搜索结果中;以及
返回对该新搜索查询进行响应的搜索结果。
58.根据权利要求56所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够执行以下步骤:
构造表示第二搜索查询和响应于该第二搜索查询而产生的第二搜索结果的第二二元决策图,该第二搜索查询包括所述词中的一个或更多个词,该第二搜索结果包括所述网页中的一个或更多个网页;
通过对所述二元决策图和该第二二元决策图执行“或”运算,向所述二元决策图添加该第二二元决策图。
59.根据权利要求56所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够执行以下步骤:
对表示一个搜索查询和响应于该搜索查询而产生的一个搜索结果的第三二元决策图取反;
通过对所述二元决策图和该被取反的第三二元决策图执行“与”运算,从该二元决策图删除该第三二元决策图。
60.根据权利要求56所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够使用一个或更多个二元决策图缩减规则来最大限度地缩减该二元决策图。
61.根据权利要求56所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够把该二元决策图分割为多个第四二元决策图,其中所述多个第四二元决策图的大小总和小于该二元决策图的大小.
62.根据权利要求61所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够存储所述多个第四二元决策图。
63.根据权利要求56所述的系统,其中,所述一个或更多个处理器在执行所述指令时,还能够存储该二元决策图。
64.一种系统,该系统包括:
用于构造多个第一二元决策图的装置,各第一二元决策图表示多个词中的不同的一个,每个词具有唯一的词标识符,各第一二元决策图是根据该第一二元决策图表示的词的词标识符而构造的;
用于构造多个第二二元决策图的装置,各第二二元决策图表示多个搜索查询中的不同的一个,每个搜索查询包括所述词中的一个或更多个词,各第二二元决策图是通过对表示由该第二二元决策图所表示的搜索查询中的词的第一二元决策图执行“与”运算而构造的;
用于构造多个第三二元决策图的装置,各第三二元决策图表示多个网页中的不同的一个,每个网页具有唯一的页面标识符,各第三二元决策图是根据该第三二元决策图表示的网页的页面标识符而构造的;
用于构造多个第四二元决策图的装置,各第四二元决策图表示响应于所述搜索查询而产生的多个搜索结果中的不同的一个,每个搜索结果包括所述网页中的一个或更多个网页,各第四二元决策图是通过对表示由该第四二元决策图所表示的搜索结果中的网页的第三二元决策图执行“或”运算而构造的;
用于构造多个第五二元决策图的装置,各第五二元决策图表示多个搜索元组中的不同的一个,每个搜索元组包括一个不同的搜索查询和对应于该搜索查询的一个不同的搜索结果,各第五二元决策图是通过对表示所述搜索查询的第二二元决策图和表示由该第五二元决策图表示的搜索元组所包括的搜索结果的第四二元决策图执行“与”运算而构造的;以及
用于通过对第五二元决策图执行“或”运算来构造第六二元决策图的装置,该第六二元决策图表示所述搜索查询和所述搜索结果。
65.一种系统,该系统包括:
用于分配多个词标识符的装置,每个词标识符被分配给多个词中的一个不同的词,每个词在多个搜索查询中出现至少一次,每个搜索查询包括所述词中的一个或更多个词;
用于分配多个页面标识符的装置,每个页面标识符被分配给多个网页中的一个不同的网页,每个网页至少一次被包括在响应于所述搜索查询而产生的多个搜索结果中,每个搜索结果包括所述网页中的一个或更多个网页;
用于获得多个查询标识符的装置,每个查询标识符对所述搜索查询中的一个不同的搜索查询进行标识,每个查询标识符是通过组合对由该查询标识符标识的搜索查询中所包括的词进行标识的词标识符而获得的;以及
用于构造表示所述搜索查询和所述搜索结果的二元决策图的装置,该二元决策图包括:
二进制“0”端节点;
二进制“1”端节点;以及
多条路径,每条路径包括多个决策节点且导向“0”端节点或“1”端节点,每个决策节点以二进制格式表示一个查询标识符或一个页面标识符中的一个二进制数位,并且对于每条导向“1”端节点的路径,由该路径上的第一一个或更多个决策节点所表示的网页,被包括在针对由该路径上的第二一个或更多个决策节点所表示的搜索查询的搜索结果中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8667208P | 2008-08-06 | 2008-08-06 | |
US61/086,672 | 2008-08-06 | ||
US12/535,461 | 2009-08-04 | ||
US12/535,461 US8468142B2 (en) | 2008-08-06 | 2009-08-04 | Caching query results with binary decision diagrams (BDDs) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101706798A true CN101706798A (zh) | 2010-05-12 |
CN101706798B CN101706798B (zh) | 2012-12-19 |
Family
ID=41653847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102214199A Expired - Fee Related CN101706798B (zh) | 2008-08-06 | 2009-08-06 | 用二元决策图缓存查询结果 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8468142B2 (zh) |
EP (1) | EP2166462B1 (zh) |
JP (1) | JP5402370B2 (zh) |
CN (1) | CN101706798B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790228A (zh) * | 2017-01-16 | 2017-05-31 | 国网江苏省电力公司信息通信分公司 | 一种基于二元决策图的防火墙差异性计算方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8572146B2 (en) | 2010-08-17 | 2013-10-29 | Fujitsu Limited | Comparing data samples represented by characteristic functions |
US8645108B2 (en) | 2010-08-17 | 2014-02-04 | Fujitsu Limited | Annotating binary decision diagrams representing sensor data |
US9002781B2 (en) | 2010-08-17 | 2015-04-07 | Fujitsu Limited | Annotating environmental data represented by characteristic functions |
US8583718B2 (en) | 2010-08-17 | 2013-11-12 | Fujitsu Limited | Comparing boolean functions representing sensor data |
US8874607B2 (en) | 2010-08-17 | 2014-10-28 | Fujitsu Limited | Representing sensor data as binary decision diagrams |
US8930394B2 (en) | 2010-08-17 | 2015-01-06 | Fujitsu Limited | Querying sensor data stored as binary decision diagrams |
US9138143B2 (en) | 2010-08-17 | 2015-09-22 | Fujitsu Limited | Annotating medical data represented by characteristic functions |
US8595179B2 (en) * | 2010-10-11 | 2013-11-26 | Fujitsu Limited | Determining optimum variable orders for BDDs using pair-wise variable grouping |
US9852311B1 (en) | 2011-03-08 | 2017-12-26 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9300637B1 (en) * | 2011-03-08 | 2016-03-29 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9292696B1 (en) | 2011-03-08 | 2016-03-22 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9338220B1 (en) | 2011-03-08 | 2016-05-10 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US11228566B1 (en) | 2011-03-08 | 2022-01-18 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9432342B1 (en) | 2011-03-08 | 2016-08-30 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9413526B1 (en) | 2011-03-08 | 2016-08-09 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US8726398B1 (en) | 2011-12-13 | 2014-05-13 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9356993B1 (en) | 2011-03-08 | 2016-05-31 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9667741B1 (en) | 2011-03-08 | 2017-05-30 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US8443004B2 (en) * | 2011-03-30 | 2013-05-14 | Kevin Houzhi Xu | System and method for storing and computing business data and logic |
US9020969B2 (en) * | 2011-07-13 | 2015-04-28 | Sap Se | Tracking queries and retrieved results |
US8781995B2 (en) * | 2011-09-23 | 2014-07-15 | Fujitsu Limited | Range queries in binary decision diagrams |
US8719214B2 (en) | 2011-09-23 | 2014-05-06 | Fujitsu Limited | Combining medical binary decision diagrams for analysis optimization |
US9075908B2 (en) | 2011-09-23 | 2015-07-07 | Fujitsu Limited | Partitioning medical binary decision diagrams for size optimization |
US8909592B2 (en) * | 2011-09-23 | 2014-12-09 | Fujitsu Limited | Combining medical binary decision diagrams to determine data correlations |
US8838523B2 (en) | 2011-09-23 | 2014-09-16 | Fujitsu Limited | Compression threshold analysis of binary decision diagrams |
US8812943B2 (en) | 2011-09-23 | 2014-08-19 | Fujitsu Limited | Detecting data corruption in medical binary decision diagrams using hashing techniques |
US9176819B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Detecting sensor malfunctions using compression analysis of binary decision diagrams |
US9177247B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US8620854B2 (en) | 2011-09-23 | 2013-12-31 | Fujitsu Limited | Annotating medical binary decision diagrams with health state information |
US10467229B2 (en) | 2016-09-30 | 2019-11-05 | Microsoft Technology Licensing, Llc. | Query-time analytics on graph queries spanning subgraphs |
US10545945B2 (en) | 2016-10-28 | 2020-01-28 | Microsoft Technology Licensing, Llc | Change monitoring spanning graph queries |
US10445361B2 (en) | 2016-12-15 | 2019-10-15 | Microsoft Technology Licensing, Llc | Caching of subgraphs and integration of cached subgraphs into graph query results |
US10402403B2 (en) | 2016-12-15 | 2019-09-03 | Microsoft Technology Licensing, Llc | Utilization of probabilistic characteristics for reduction of graph database traversals |
US10242223B2 (en) | 2017-02-27 | 2019-03-26 | Microsoft Technology Licensing, Llc | Access controlled graph query spanning |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2985922B2 (ja) * | 1992-10-28 | 1999-12-06 | 日本電信電話株式会社 | 論理関数データ処理装置 |
FR2697652B1 (fr) * | 1992-10-30 | 1994-12-16 | Bull Sa | Procédé de détermination automatique des probabilités associées à une fonction booléenne. |
JPH08180066A (ja) * | 1994-12-26 | 1996-07-12 | Toshiba Corp | インデックス作成方法、文書検索方法及び文書検索装置 |
JPH0934906A (ja) * | 1995-07-19 | 1997-02-07 | Toshiba Corp | 図書管理装置 |
US5915249A (en) * | 1996-06-14 | 1999-06-22 | Excite, Inc. | System and method for accelerated query evaluation of very large full-text databases |
US5920854A (en) * | 1996-08-14 | 1999-07-06 | Infoseek Corporation | Real-time document collection search engine with phrase indexing |
US6363377B1 (en) * | 1998-07-30 | 2002-03-26 | Sarnoff Corporation | Search data processor |
US6658458B1 (en) * | 2000-06-22 | 2003-12-02 | Cisco Technology, Inc. | Cascading associative memory arrangement |
US7136899B1 (en) * | 2000-12-11 | 2006-11-14 | Microsoft Corporation | Inverse query decisions using binary decision diagrams and sub-expression implications |
JP2004172917A (ja) * | 2002-11-20 | 2004-06-17 | Nec Corp | パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム |
US7266790B2 (en) * | 2003-03-07 | 2007-09-04 | Cadence Design Systems, Inc. | Method and system for logic equivalence checking |
JP4381012B2 (ja) * | 2003-03-14 | 2009-12-09 | ヒューレット・パッカード・カンパニー | 万物識別子を用いたデータ検索システムおよびデータ検索方法 |
CN100498790C (zh) * | 2007-02-06 | 2009-06-10 | 腾讯科技(深圳)有限公司 | 一种搜索方法和系统 |
US8332385B2 (en) * | 2008-03-11 | 2012-12-11 | Semmle Limited | Approximating query results by relations over types for error detection and optimization |
US20090287676A1 (en) * | 2008-05-16 | 2009-11-19 | Yahoo! Inc. | Search results with word or phrase index |
TWI446349B (zh) | 2010-03-04 | 2014-07-21 | Phison Electronics Corp | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 |
-
2009
- 2009-08-04 US US12/535,461 patent/US8468142B2/en active Active
- 2009-08-05 EP EP09167292.3A patent/EP2166462B1/en not_active Not-in-force
- 2009-08-06 JP JP2009183190A patent/JP5402370B2/ja not_active Expired - Fee Related
- 2009-08-06 CN CN2009102214199A patent/CN101706798B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790228A (zh) * | 2017-01-16 | 2017-05-31 | 国网江苏省电力公司信息通信分公司 | 一种基于二元决策图的防火墙差异性计算方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2166462B1 (en) | 2017-08-30 |
JP5402370B2 (ja) | 2014-01-29 |
US8468142B2 (en) | 2013-06-18 |
EP2166462A1 (en) | 2010-03-24 |
US20100036835A1 (en) | 2010-02-11 |
JP2010055608A (ja) | 2010-03-11 |
CN101706798B (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706798B (zh) | 用二元决策图缓存查询结果 | |
CN101124537B (zh) | 采用术语构建知识关联的知识发现技术 | |
US9053210B2 (en) | Graph query processing using plurality of engines | |
CA3088695C (en) | Method and system for decoding user intent from natural language queries | |
US11232154B2 (en) | Neural related search query generation | |
US20060242130A1 (en) | Information retrieval using conjunctive search and link discovery | |
CN102541631B (zh) | 以多线程不同驱动源执行计划处理查询的方法和系统 | |
US6968331B2 (en) | Method and system for improving data quality in large hyperlinked text databases using pagelets and templates | |
CN107710201A (zh) | 存储数据和从位向量搜索索引取回数据 | |
US20210382944A1 (en) | Generating a Graph Data Structure that Identifies Relationships among Topics Expressed in Web Documents | |
CN107851108A (zh) | 使用位向量搜索索引的匹配文档 | |
US20210081454A1 (en) | Unsupervised automatic taxonomy graph construction using search queries | |
CN111813905A (zh) | 语料生成方法、装置、计算机设备及存储介质 | |
CN108475266A (zh) | 用来移除匹配文档的匹配修复 | |
US11893351B2 (en) | Modified machine learning model and method for coherent key phrase extraction | |
Garanina et al. | A multi-agent text analysis based on ontology of subject domain | |
CN109726292A (zh) | 面向大规模多语种数据的文本分析方法和装置 | |
JP5056384B2 (ja) | 検索プログラム、方法及び装置 | |
NikRavesh | Fuzzy conceptual-based search engine using conceptual semantic indexing | |
JP4002943B1 (ja) | 検索最適化装置、方法、及びコンピュータプログラム | |
US11232088B2 (en) | Method and system for interactive search indexing | |
Neto et al. | WASOTA: What Are the States Of The Art? | |
Mylsami et al. | Improved Weighted Page Ranking Algorithm Based on Principal Component Analysis and Map Reduce Frame work for Web Access | |
CN100568172C (zh) | 用于交互式搜索查询细化的系统和方法 | |
CN117708187A (zh) | 标签条件组合的用户查询方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121219 |
|
CF01 | Termination of patent right due to non-payment of annual fee |