我正在选择一些冒险作品。
(IE
SELECT *
FROM Production.Product
WHERE FREETEXT(*, 'screw washer spaner');
) 我还没有遇到使用同义词库并显示同义词发现的选择。
我怎么知道我是否正在使用此功能?
任何人都可以提供一个选择来展示词库的用法吗
我正在选择一些冒险作品。
(IE
SELECT *
FROM Production.Product
WHERE FREETEXT(*, 'screw washer spaner');
) 我还没有遇到使用同义词库并显示同义词发现的选择。
我怎么知道我是否正在使用此功能?
任何人都可以提供一个选择来展示词库的用法吗
这是设置脚本(感谢 Itzik Ben-Gan(作者 Querying SQL Server)),它允许您在词库底部使用示例查询:
IF OBJECT_ID('dbo.Documents', 'table') IS NOT NULL
DROP TABLE dbo.Documents;
CREATE TABLE dbo.Documents
(
id INT NOT NULL IDENTITY,
title NVARCHAR(100) NOT NULL,
doctype NCHAR(4) NOT NULL,
docexcerpt NVARCHAR(1000) NOT NULL,
doccontent VARBINARY(MAX) NOT NULL,
CONSTRAINT PK_Documents
PRIMARY KEY CLUSTERED(id)
);
GO
INSERT INTO dbo.Documents
(title, doctype, docexcerpt, doccontent)
SELECT N'Introduction to Data Mining',
N'docx',
N'Using Data Mining is becoming more a necessity for every company
and not an advantage of some rare companies anymore. ',
bulkcolumn;
GO
--通过添加编辑词库文件
<expansion>
<sub>need</sub>
<sub>necessity</sub>
</expansion>
--运行以下命令重新加载您编辑的词库
EXEC sys.sp_fulltext_load_thesaurus_file 1033;
GO
并在一个单独的批处理中,执行以下命令:
SELECT *
FROM dbo.Documents
WHERE FREETEXT(doccontent, N'FORMSOF(THESAURUS, need)');
GO
“需要”一词不在文档摘录中,但是由于同义词已加载到同义词库中,如果正确加载了同义词库,则该行将返回。如果您对此有疑问,有很多 StackOverflow 文章和 BOL 条目介绍了如何加载/配置它。