1

我已经搜索了每个站点,博客(甚至是这里的答案),但似乎没有任何工作。我在SQL Server 2008 R2中创建了一个数据库(已激活全文搜索并可用于创建的数据库),创建一个表(按照所有步骤创建为FileStream启用的表),创建目录,全文索引..和当我输入一个简单的测试查询时,它不会返回任何内容。在这里,我将粘贴用于创建数据库和其他所有代码的所有代码。现在在varbinary(max)列上的全文搜索不起作用

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',结果仍然相同。我究竟做错了什么?并且请不要给我一些微软网站的链接,我只需要一个关于如何正确执行此操作的例子,这样它就可以工作(我不需要通过名称中的某个词找到文档,而是通过其中的文字找到文档)。

我事先感谢您的帮助。

+0

完全一样的问题。它适用于一个数据库,不适用于另一个数据库。他们之间没有区别。 – 2013-10-18 06:55:53

回答

0

对于那些谁没有想出在上面的脚本错误的是,创建全文索引的语句应该这样读 -

CREATE FULLTEXT INDEX ON dbo.Documentos 

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

当第一个参数应该是“这份执行”(表格中的列)而不是“Documentos”(表格本身)。