布尔搜索

布尔搜索使您能够组合关键字,以创建更复杂的线索。

要指定包含词 multimedia document,但不包含词 video 的文档,请使用布尔搜索,如以下示例中所示:
SELECT id, description FROM videos
    WHERE etx_contains (description, 
    Row('multimedia & editor & !video', 
    'SEARCH_TYPE = BOOLEAN_SEARCH'));

布尔运算符 & 和 ! 用于构建所需的布尔表达式。通过将 SEARCH_TYPE 调整参数设置为 BOOLEAN_SEARCH,可以指定布尔搜索。

如果您创建了一个启用 PHRASE_SUPPORT 的 etx 索引,那么可以在 etx_contains() 语法中指定布尔词组,如以下示例中所示:
SELECT id, description FROM videos
    WHERE etx_contains (description,
    Row ('vanilla wafers | chocolate chip cookies',
         'SEARCH_TYPE = BOOLEAN_SEARCH'));
该查询将返回包含词组 vanilla waferschocolate chip cookies 的相关记录。
重要: 如果在尚未使用 PHRASE_SUPPORT 建立索引的列上指定布尔词组搜索,就会遇到错误。
当线索中包含表示布尔运算符的字符时,要对该线索执行布尔搜索,请将该字符转义为反斜杠,如以下示例中所示:
SELECT id, description FROM videos
    WHERE etx_contains (description,
    Row ('Lord \& Taylor | Nordstrom',
         'SEARCH_TYPE = BOOLEAN_SEARCH'));

该查询将返回包含名称 Lord & TaylorNordstrom 的相关记录。如果未对布尔 & 运算符进行转义,那么查询将返回包含词 Lord Taylor 的文档,或返回包含词 Nordstrom 的文档。

可以通过使用反斜杠对布尔运算符 &、|、!、和 ^ 进行换码。
重要: 搜索引擎通常为布尔搜索返回的所有行都分配 100 分,即便是布尔搜索与模式搜索相结合的情况。搜索引擎无法为命中分配一个合理的相对评分,因为布尔线索可能由多个部分组成,各个命中可能因线索的不同部分所引起。因此,搜索引擎将布尔搜索的分数都硬性地记为 100 分,即便是在用户可能应用合理分数的情况下。