Quantcast
Channel: SQL Server Setup & Upgrade forum
Viewing all articles
Browse latest Browse all 7696

I STILL can't get a full text search to work on a filestream table.

$
0
0

SQLServerExpress 2012/WIndows Server 2008R2

Create filestream enabled database:

CREATE DATABASE ISR
PRIMARY (NAME = FileStream1, 
		FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\FileStreamDat1.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM ( NAME= FileStream3, 
		FILENAME = 'F:\FileStream1')
LOG ON ( NAME = FileStreamLog1, 
		FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\FileStreamLog1.ldf')		
GO	

Create Filestream enabled table:

USE [ISR]
GO
/****** Object:  Table [dbo].[Documents]    Script Date: 2/22/2013 8:56:59 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Documents](
	[DocumentID] [bigint] IDENTITY(1,1) NOT NULL,
	[FilestreamID] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
	[TextIndex] [varchar](50) NULL,
	[TextType] [varchar](10) NULL,
	[Doc] [varbinary](max) FILESTREAM  NOT NULL,
	[Text] [varbinary](max) FILESTREAM  NOT NULL,
	[Title] [nvarchar](50) NOT NULL,
	[UserID] [int] NOT NULL,
	[FileName] [nvarchar](400) NULL,
	[FileExtension] [nvarchar](8) NULL,
	[ModifiedDate] [datetime] NULL,
 CONSTRAINT [PK_Document] PRIMARY KEY CLUSTERED 
(
	[DocumentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [FileStreamGroup1],
 CONSTRAINT [UQ__Document__6A858DF292516B12] UNIQUE NONCLUSTERED 
(
	[FilestreamID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
UNIQUE NONCLUSTERED 
(
	[FilestreamID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] FILESTREAM_ON [FileStreamGroup1]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Documents] ADD  DEFAULT (newsequentialid()) FOR [FilestreamID]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Key Field' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'DocumentID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Filestream unique ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'FilestreamID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Full Text Index' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'TextIndex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'may be used for full text search' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'TextType'
GO

Create Full Text Catalog:

create fulltext catalog FileStreamFTCatalog ON FILEGROUP FileStreamGroup1  AS DEFAULT

Create Full Text Index:

Create fulltext index on dbo.Documents
(Title, Text TYPE COLUMN TextType)
Key INDEX PK_Document
ON FileStreamFTCatalog
WITH Change_Tracking AUTO

Create word file that consists of a single sentence: "This is a sample document."  Save as docx and pdf.  Read into filestream:

DECLARE @Doc AS VARBINARY(MAX), @Text AS VARBINARY(MAX)
-- Load the image data
SELECT @doc = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET( BULK 'C:\This is a sample document.docx', SINGLE_BLOB ) AS x 
SELECT @text = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET( BULK 'C:\This is a sample document.docx', SINGLE_BLOB ) AS x 
INSERT INTO [dbo].[Documents] (Doc,Text,FileName, TextType, Title, UserID,ModifiedDate)
VALUES (@doc,@text,'This is a sample document','.docx','This is a sample document',1, getdate())

Check to see if docs are there:

SELECT Doc.PathName() AS 'PathName', Title, TextType, FIlestreamID FROM Documents;

They are.

Run full text query:

Select *
FROM Documents
WHERE CONTAINS (Text, 'This')

NO RESULTS.

What am I doing wrong????


Viewing all articles
Browse latest Browse all 7696

Trending Articles