1

모든 사이트, 블로그 (여기도 답변)를 검색했지만 아무 것도 작동하지 않는 것 같습니다. 필자는 SQL Server 2008 r2에서 데이터베이스를 만들었습니다 (Fulltext 검색이 활성화되어 생성 된 데이터베이스에서 사용 가능). 테이블을 만들고 (Filestream 용 테이블을 만들 수있는 모든 단계를 따라) 카탈로그를 만들고 전체 텍스트 인덱스를 만들었습니다. 간단한 테스트 쿼리를 입력하면 아무것도 반환하지 않습니다. 여기서는 데이터베이스를 만드는 데 사용한 모든 코드와 그 밖의 모든 코드를 붙여 넣습니다.varbinary (최대) 열에 대한 전체 텍스트 검색이 작동하지 않습니다.

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 Documentoss 
WHERE CONTAINS(Archivo, '"crisis*"') 

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') 

또는

내가 아무것도 얻을 .. 결과 빈 .. 심지어 빈 행, 아무것도 아니다. 나는 'Documento'필드에 긴 문서 이름이 있기 때문에 'inso'와 같은 새로운 값을 입력했기 때문에 결과가 여전히 동일하다고 생각했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 그리고 제게 마이크로 소프트 사이트에 대한 링크를 제공하지 마세요. 올바르게 작동하도록 예제를 작성하면됩니다. (이름에 단어가 아닌 문서 내의 단어로 문서를 찾을 필요가 없습니다.)

귀하의 도움에 미리 감사드립니다. 아직 위의 스크립트에서 오류를 파악하지 않은 사람들을 위해

+0

정확히 같은 문제입니다. 하나의 데이터베이스에서 작동하며 다른 데이터베이스에서는 작동하지 않습니다. 그리고 그들 사이에는 차이점이 없습니다. –

답변

0

, 전체 텍스트 색인을 만들 수있는 문은 이렇게 읽어야합니다 - 최초의 파라미터는 "Documento"(있었어야

CREATE FULLTEXT INDEX ON dbo.Documentos 

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

을 "Documentos"(테이블 자체) 대신에 테이블 내의 열).

관련 문제