使用语义搜索查找文档中的关键短语

介绍如何在为统计语义索引配置的文档或文本列中查找关键短语。

本主题内容

我想要…

  • 在文档中查找关键短语

    • 如何使用 SEMANTICKEYPHRASETABLE 在文档中查找关键短语

    • 示例:查找特定文档中的最重要关键短语

    • 示例:查找包含特定关键短语的最相关文档

在文档中查找关键短语

如何使用 SEMANTICKEYPHRASETABLE 在文档中查找关键短语

若要确定特定文档中的关键短语或确定包含特定关键短语的文档,可以查询函数 semantickeyphrasetable (Transact-SQL)

SEMANTICKEYPHRASETABLE 为与指定表中的列关联的那些关键短语返回包含零行、一行或多行的表。 可以在 SELECT 语句的 FROM 子句中像引用常规表名那样引用此行集函数。

注意注意

在 SQL Server 2012 中,对于语义搜索只将单个单词编入索引,多词短语 (ngrams) 未编入索引。 此外,相同单词的各种形式单独编入索引,例如,“computer”和“computers”单独编入索引。

有关 SEMANTICKEYPHRASETABLE 函数所需的参数和它返回的结果表的详细信息,请参阅 semantickeyphrasetable (Transact-SQL)

重要说明重要提示

针对的列必须启用了全文索引和语义索引。

[返回页首]

示例 1:查找特定文档中的最重要关键短语

以下示例从通过 @DocumentId 变量指定的文档中检索前 10 个关键短语,该文档 ID 位于 AdventureWorks 示例数据库的 Production.Document 表的 Document 列中。 @DocumentId 变量表示全文索引的键列的一个值。

SELECT TOP(10) KEYP_TBL.keyphrase
FROM SEMANTICKEYPHRASETABLE
    (
    Production.Document,
    Document,
    @DocumentId
    ) AS KEYP_TBL
ORDER BY KEYP_TBL.score DESC;
GO

SEMANTICKEYPHRASETABLE 函数使用索引查找替代表扫描高效检索这些结果。

[返回页首]

示例 2:查找包含特定关键短语的最相关文档

以下示例从 AdventureWorks 示例数据库的 Production.Document 表的 Document 列中检索包含关键短语“Bracket”的前 25 个文档。

SELECT TOP (25) DOC_TBL.DocumentID, DOC_TBL.DocumentSummary
FROM Production.Document AS DOC_TBL
    INNER JOIN SEMANTICKEYPHRASETABLE
    (
    Production.Document,
    Document
    ) AS KEYP_TBL
ON DOC_TBL.DocumentID = KEYP_TBL.document_key
WHERE KEYP_TBL.keyphrase = 'Bracket'
ORDER BY KEYP_TBL.Score DESC;
GO

[返回页首]