varbinary(max)列上的全文搜索不起作用

时间:2013-05-07 21:46:07

标签: sql-server sql-server-2008-r2 full-text-search filestream

我搜索过每个网站,博客(甚至是这里的答案),但似乎都没有。我在SQL Server 2008中创建了一个db r2(全文搜索被激活并可用于创建的数据库),创建一个表(按照所有步骤创建一个为Filestream启用的表),创建目录,全文索引..和当我输入一个简单的测试查询时,它不返回任何内容。我将粘贴我用于创建数据库的所有代码以及其他所有代码。

CREATE DATABASE FSTest

    ON PRIMARY(NAME = FSTest_data,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

\FSTest_data.mdf'),

    FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = FSTest_fs,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

\filestream')
LOG ON( NAME = FSTest_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

\FSTest_log.ldf')
GO

USE FSTest

CREATE TABLE dbo.Documentos
(
  Id [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
  Documento varchar(50),
  Extension varchar(10),
  Archivo varbinary(max) FILESTREAM NULL
)

CREATE FULLTEXT CATALOG FSCatalog AS DEFAULT

CREATE FULLTEXT INDEX ON dbo.Documentos

(Documentos, Archivo TYPE COLUMN Extension)
KEY INDEX UQ__Document__3214EC061CF15040
ON FSCatalog
WITH CHANGE_TRACKING AUTO

现在,我将使用计算机中的文件填充行

DECLARE @Arch as VARBINARY(MAX)
SELECT @Arch = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET( BULK 'C:\cecar\inso.doc', SINGLE_BLOB) AS x

INSERT INTO dbo.Documentos (Id, Documento, Extension, Archivo)
VALUES(NEWID(),'Ingenieria del Software','.doc',@Arch)

至于他们上面的所有说明,他们都没有给我任何错误信息。我仍然输入如下的查询:

SELECT * 
FROM Documentos 
WHERE CONTAINS(Archivo, 'crisis')   //The word 'crisis' is contained in the file, I double checked..

或者

SELECT * 
FROM Documentos 
WHERE FREETEXT(Archivo, 'crisis') 

SELECT * 
FROM Documentoss 
WHERE CONTAINS(Archivo, '"crisis*"')

我什么都没得到......结果是空白的......甚至没有空行,什么都没有。我甚至认为这可能是由于'Documento'字段中的长文档名称所以我输入了一个像'inso'这样的新值,结果仍然相同。我究竟做错了什么?并且请不要给我一些微软网站的链接,我只需要一个关于如何正确执行此操作的示例,以便它可以工作(我不需要在其名称中通过某些单词查找文档,而是通过其中的单词)。

我事先感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

对于那些尚未弄清楚上述脚本中的错误的人,创建全文INDEX的语句应如下所示 -

CREATE FULLTEXT INDEX ON dbo.Documentos

(Documento, Archivo TYPE COLUMN Extension)
KEY INDEX UQ__Document__3214EC061CF15040
ON FSCatalog

第一个参数应该是" Documento" (表格中的列)而不是" Documentos" (表格本身)。