2
SQL Server 2008 R2 - 全文索引正在处理nvarchar列,但不在xml列上。它像它不能索引xml值。我把下面的例子放在一起,在多台服务器上进行测试,除了一台服务器,它都会返回自由文本搜索的数据。在有问题的服务器上,我没有得到第二个select语句的结果(正在查看xml列)。我已经完成了与FullText相关的所有设置,但是我没有看到任何启用/禁用XML的设置。SQL Server全文索引XML数据
注意:最后的两个select语句有时需要在延迟后运行。当您一次运行整个数据块时,似乎正在编制索引。
-- Create Table
CREATE TABLE [dbo].[a_TestFullText](
[id] [int] IDENTITY(1,1) NOT NULL,
[otherdata] [varchar](250) NOT NULL,
[xmldata] [xml] NOT NULL,
CONSTRAINT [pk_TestFullText] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
-- Populate Data
Insert Into dbo.a_TestFullText(xmldata, otherdata) Values
('<nodename>Ham Cheese Sandwich</nodename>', 'Strange'),
('<nodename>Potatoes</nodename>', 'Tony')
GO
-- Create Catalog
Create FULLTEXT CATALOG TestFullText
GO
-- Create Index
Create FULLTEXT INDEX ON dbo.a_TestFullText(otherdata,xmldata) KEY INDEX [pk_TestFullText] ON [TestFullText]
GO
-- Populate Index
Alter FULLTEXT INDEX on dbo.a_TestFullText START FULL POPULATION;
GO
-- Check for results
Select *
From dbo.a_TestFullText
Where FreeText(otherdata, 'Strange')
Select *
From dbo.a_TestFullText
Where FreeText(xmldata, 'Potatoes')
GO