SQL Server全文本搜索空目录

时间:2018-12-18 07:21:21

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

我正在尝试在Azure的SQL Server上运行全文搜索。

我的数据在varbinary(max)中,所有列均包含数据。数据是html字符串。

SearchableData列的计算和填充使用:

CONVERT(VARBINARY(MAX),[Title] + [Body])

进行选择并转换回去会产生数据。

我想利用SQL Server的内置html过滤器。

如果执行以下操作,则可以进行搜索,并且一切正常,但是没有过滤器:

CREATE FULLTEXT INDEX 
    ON ArticleContent (Body LANGUAGE 0, Title LANGUAGE 0) 
       KEY INDEX PK_ArticleContent ON AcademyFTS 
       WITH (STOPLIST = SYSTEM, CHANGE_TRACKING AUTO)

但是,我希望能够实现.html过滤。

我创建了以下内容:

CREATE FULLTEXT CATALOG AcademyFTS WITH ACCENT_SENSITIVITY = OFF AS DEFAULT

CREATE FULLTEXT INDEX 
    ON ArticleContent (SearchableData TYPE COLUMN FileExtension LANGUAGE 0) 
       KEY INDEX PK_ArticleContent ON AcademyFTS 
       WITH (STOPLIST = SYSTEM, CHANGE_TRACKING AUTO)

但是目录是空的,通过简单的搜索我没有得到任何结果

SELECT * 
FROM ArticleContent 
WHERE FREETEXT(SearchableData, 'wiki') 

我一直在使用这两个指南:

Hands on Full-Text Search in SQL Server

How to implement a full-text search on HTML documents with Microsoft SQL Server

1 个答案:

答案 0 :(得分:1)

我找到了答案!

您无法在计算列上进行全文搜索! :)

Microsoft Docs