【发布时间】:2015-05-23 14:05:15
【问题描述】:
因此,SQL Azure 最近发布了一项新功能,作为 V12 升级的一部分。您现在可以在您的数据库上实现全文搜索目录。
我已经阅读了设置说明,并创建了一个 FTI pn 表,其中包含一个 XML 数据列。
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.5m 行),所以我把它放了一夜,第二天又回来了。
看起来已经完成了。但是在 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)
PopulateStatus 的 FULLTEXTCATALOGPROPERTY 报告它处于空闲状态。
表格的行数,与目录中的项目数相同。
select count(id) from recorddata
------------------------------------------
(No column name)
539726
------------------------------------------
SELECT FULLTEXTCATALOGPROPERTY('recordDataCatalog','ItemCount')
-----------------------------------------
(No column name)
539726
我注意到的一件奇怪的事情是索引关键字似乎丢失/未正确填充。
SELECT * FROM sys.dm_fts_index_keywords(
DB_ID('TransomTest'),
OBJECT_ID('RecordData'))
------------------------------------------------------
keyword display_term column_id document_count
0xFF END OF FILE 2 539726
任何人都知道下一步要去哪里。大多数关于 FTS 和 XML 的 SQL 文档都说这应该可以工作,并且应该根据 XML 标记边界解析单词列表。鉴于此功能的新功能,不存在特定于 Azure 的文档。
【问题讨论】:
标签: sql-server xml azure full-text-search azure-sql-database