Sql server varbinary(max)列上的全文搜索无效
我搜索了每一个网站、博客(甚至这里的答案),但似乎没有一个有效。我在SQL Server 2008 r2中创建了一个db(全文搜索已激活,可用于创建的数据库),创建了一个表(按照所有步骤创建一个可用于Filestream的表),创建了目录和全文索引。。当我输入一个简单的测试查询时,它什么也不返回。在这里,我将粘贴用于创建数据库和其他所有内容的所有代码Sql server varbinary(max)列上的全文搜索无效,sql-server,sql-server-2008-r2,full-text-search,filestream,Sql Server,Sql Server 2008 R2,Full Text Search,Filestream,我搜索了每一个网站、博客(甚至这里的答案),但似乎没有一个有效。我在SQL Server 2008 r2中创建了一个db(全文搜索已激活,可用于创建的数据库),创建了一个表(按照所有步骤创建一个可用于Filestream的表),创建了目录和全文索引。。当我输入一个简单的测试查询时,它什么也不返回。在这里,我将粘贴用于创建数据库和其他所有内容的所有代码 CREATE DATABASE FSTest ON PRIMARY(NAME = FSTest_data, FILENA
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..
或
或
我什么也得不到。。结果是空的。。甚至没有空的一排,什么也没有。我甚至认为这可能是因为“Documento”字段中有一个很长的文档名,所以我输入了一个像“inso”这样的新值,结果仍然是一样的。我做错了什么?请不要给我一些微软网站的链接,我只需要一个例子,说明如何正确地做到这一点,使其正常工作(我不需要通过名称中的某个单词来查找文档,而是通过其中的单词来查找文档)
我提前感谢您的帮助。对于那些尚未发现上述脚本中错误的人,创建全文索引的语句应该这样读--
其中第一个参数应该是“Documento”(表中的列),而不是“Documentos”(表本身)。完全相同的问题。它与一个数据库一起工作,而与另一个数据库不工作。它们之间没有区别。
SELECT *
FROM Documentos
WHERE FREETEXT(Archivo, 'crisis')
SELECT *
FROM Documentoss
WHERE CONTAINS(Archivo, '"crisis*"')
CREATE FULLTEXT INDEX ON dbo.Documentos
(Documento, Archivo TYPE COLUMN Extension)
KEY INDEX UQ__Document__3214EC061CF15040
ON FSCatalog