支持的查询词形式(全文搜索)

本主题介绍 SQL Server 支持的全文查询形式,并且总结全文谓词和行集值函数为每种形式的查询提供的支持。只能针对已经进行了全文索引的列运行全文查询。

查询词形式

说明

支持的语句

一个或多个特定的词或短语(“简单词”)

在全文搜索中,会将词视为标记。标记由相应的断字符进行标识,并遵循指定语言的语言规则。有效的短语可以由多个词组成,词之间可以有标点也可以没有标点。

例如,“croissant”是一个词,“café au lait”是一个短语。这样的词和短语称为“简单词”。

有关详细信息,请参阅搜索特定词或短语(简单词条)

CONTAINS 和 CONTAINSTABLE(查找短语的完全匹配项),以及 FREETEXT 和 FREETEXTTABLE(将短语分解成单独的词)。

以指定文本开头的词或短语(“前缀词”)

前缀词指附加到一个词的前面以生成一个派生词或变形的字符串。

对于单个前缀词,以指定词开头的任何词将是结果集的一部分。例如,词“auto*”与“automatic”、“automobile”等匹配。

如果是短语,则该短语内的每个词都被看作是一个前缀。例如,词“auto tran”与“automatic transmission”和“automobile transducer”匹配,但与“automatic motor transmission”不匹配。

有关详细信息,请参阅执行前缀搜索

CONTAINS 和 CONTAINSTABLE

特定词的变形(“派生词”)

变形是动词的不同时态,或者名词的单数和复数形式。例如,搜索词“drive”的变形。如果表中不同的行包含词“drive”、“drives”、“drove”、“driving”和“driven”,则这些词都会出现在结果集中,原因是它们每一个都可以从词 drive 变形而来。

有关详细信息,请参阅搜索特定词的变形(派生词)

FREETEXT 和 FREETEXTTABLE 查询默认情况下查找所有指定词的变形。

CONTAINS 和 CONTAINSTABLE 支持可选的 INFLECTIONAL 参数。

与另一个词或短语邻近的词或短语(“邻近词”)

邻近词指的是与另一个或两个词或短语以任意顺序邻近的词或短语。

例如,查找词“ice”与“hockey”邻近或短语“ice skating”与“ice hockey”邻近的行。两个词或短语是否被视为彼此邻近是在内部计算的,用户无法进行配置。计算邻近性时,将考虑许多数据点。

此类型的查询也会返回包含相应搜索词的文档或行,即使这些搜索词在其中并不彼此邻近。对于这些结果,排名为零 (0)。

有关详细信息,请参阅搜索与另一个词或短语邻近的词或短语(邻近词)

CONTAINSTABLE

注意注意
FREETEXT 和 FREETEXTTABLE 会将邻近语法解密为可搜索字符串,但不会给出预期的结果。

特定单词的同义词形式(“同义词库”)

同义词库为词定义用户指定的同义词。例如,如果将项“{car, automobile, truck, van}”添加到同义词库,则可以搜索单词“car”的同义词库形式。由于这些单词中的每一个都属于包含单词“car”的同义词扩展集,因此在所查询的表中所有包括单词“automobile”、“truck”、“van”或“car”的行都会出现在结果集中。

有关同义词库文件结构的信息,请参阅同义词库配置

FREETEXT 和 FREETEXTTABLE 查询默认情况下使用同义词库。

CONTAINS 和 CONTAINSTABLE 支持可选的 THESAURUS 参数。

使用加权值的词或短语(“加权词”)

加权值指示一组词和短语中的每个词和短语的重要程度。加权值的最低值是 0.0,最高值是 1.0。

例如,在某个搜索多个词条的查询中,可以为每个搜索单词指定一个加权值,用于指示它相对于搜索条件中其他单词的重要性。此查询类型的结果将按指定给搜索单词的相对权重首先返回最相关的行。结果集由包含任何指定词(或它们之间的内容)的文档或行组成;但是,由于与不同搜索词关联的加权值的不同,某些结果将被视为比其他结果更相关。

有关详细信息,请参阅使用加权值搜索词或短语(加权词)

CONTAINSTABLE

注意注意
将 CONTAINS 或 FREETEXT 与加权词一起使用不会给出与检索的行相关的结果。FREETEXT 和 FREETEXTTABLE 会将权重解密为可搜索字符串,但不会给出预期的结果。