【问题标题】:sql server full text search - looking for an example usage of thesaurus in full text searchsql server full text search - 寻找词库在全文搜索中的示例用法
【发布时间】:2013-05-26 05:49:58
【问题描述】:

我正在对冒险作品进行一些选择。
(即

SELECT *
FROM Production.Product
WHERE FREETEXT(*, 'screw washer spaner');

) 我还没有遇到使用同义词库并显示同义词发现的选择。
我如何知道我是否在使用此功能?
任何人都可以提供一个选择来展示词库的用法

【问题讨论】:

    标签: sql-server search full-text-search freetext


    【解决方案1】:

    这是安装脚本(感谢 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 条目。

    【讨论】:

    • 我看到你关于成功加载同义词库文件的另一个问题,我也回答了那个问题。请标记为问题的答案或评论,以便我提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 2011-02-13
    • 2012-05-02
    • 2015-06-15
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多