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」(表格本身)。