我的应用程序的数据库将文件存储在FILESTRAM
blob字段中。我有一个专门的表格,我保存所有文件。
这是表格(DOCUMENT
是blob字段):
CREATE TABLE [dbo].[DOC_FILES](
[ID_DOC_FILE] [int] NOT NULL,
[DOCUMENT] [varbinary](max) FILESTREAM NULL,
[GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[FILE_SIZE] [int] NULL,
CONSTRAINT [PK_DOC_FILES] PRIMARY KEY CLUSTERED
(
[ID_DOC_FILE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY] FILESTREAM_ON [MyDatabase],
UNIQUE NONCLUSTERED
(
[GUID] 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 [MyDatabase]
我想要执行的是在文件中搜索。
我想将文件定位为pdf,doc,docx,rtf,txt。
是否可以进行这样的查询:
SELECT ID_DOC_FILES FROM DOC_FILES
WHERE DOCUMENT *CONTAINS* 'my search string' //*CONTAINS* of course is just for demonstration...
...
它应该返回包含“我的搜索字符串”的pfd,doc,docx,rt,txt文件的所有ID。
解决方法可能是创建一个INDEXED_CONTENT
字段,将文本内容保存为文本(我可以逐个处理所有文件以提取文本)。
无论如何,在此之前,我想确保在blob内搜索是不可能的。
谢谢。