全文搜索不在SQL Azure上的XML列上工作

时间:2015-05-22 08:27:24

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

因此,SQL Azure最近发布了一项新功能,作为V12升级的一部分。您现在可以在数据库上实现全文搜索目录。

http://azure.microsoft.com/blog/2015/04/30/full-text-search-is-now-available-for-preview-in-azure-sql-database/

我已经完成了安装说明,并使用XML数据列创建了一个FTI表。

CREATE FULLTEXT CATALOG recordDataCatalog AS DEFAULT;
CREATE FULLTEXT INDEX ON RecordData(Data) KEY INDEX PK_RecordData ON recordDataCatalog; 
ALTER FULLTEXT INDEX ON RecordData ENABLE; 
GO 
ALTER FULLTEXT INDEX ON RecordData START FULL POPULATION; 

设置很好;它是一张相当大的桌子(约0.5米排),所以我把它留了一夜,然后第二天就回来了。

看起来已经完成了。但是在XML中搜索已知字符串并没有返回结果。

SELECT * FROM RecordData WHERE Contains(Data, 'formsof(freetext, john)')
(0 row(s) affected)
SELECT * FROM RecordData WHERE Contains(Data, 'john')
(0 row(s) affected) 

FULLTEXTCATALOGPROPERTY的{​​{1}}报告说它处于空闲状态。

表格的行数与目录中的项目计数相同。

PopulateStatus

我注意到一件奇怪的事情是索引关键字似乎缺失/没有正确填充。

select count(id) from recorddata
------------------------------------------
(No column name)
539726
------------------------------------------
SELECT FULLTEXTCATALOGPROPERTY('recordDataCatalog','ItemCount')
----------------------------------------- 
(No column name)
539726

任何人都知道下一步该去哪里。关于FTS& amp;的大多数SQL Docs XML说这应该可行,并且应该根据XML标签边界解析单词列表。鉴于此功能的新功能,Azure特有的文档是不存在的。

1 个答案:

答案 0 :(得分:4)

尚不支持xml文档类型索引,并且正在进行工作以支持此操作。可以使用以下方法查询支持的当前文档类型列表:

select * from sys.fulltext_document_types where version !=''