因为项目需要,需要对上传的文件内容进行查询。通过MSDN了解到Windows索引服务可以实现对文件的全文检索,并可以通过SQL Server进行查询。项目将这两者结合,实现对上传文件的全文检索的解决方案。
方案概要:
1. 改变文件存储时的文件名
2. 配置索引服务器,并将索引服务器与MS SQL Server关联。
3. 修改SQL语句,将进行全文查询语句的内容加入查询条件中
文件的存储方式:
为了方便存储以及方便索引,我们将上传的文件存储到一个目录里面,为了保证上传的文件名不重复,采用GUID作为文件名,并且通过这个GUID于数据库记录相关联。同时,文件的后缀还保持原始文件的后缀,让索引服务能够识别该文档。
配置索引服务
进入计算机管理(Computer Management)程序(右键”我的电脑”->”管理”),并找到索引服务(Index Service)
配置索引服务的功能
(1)右键选择索引服务弹出一个菜单
(2)选择New->Catalog(新建一个编录)
设置新增加的编录
(1)输入编录的名字(这个名字需要与数据库进行关联,要注意命名,这里假设DCSII
(2)点Browse进入选择索引服务运行目录窗体
(3)选择前面创建的索引运行目录(任意地方)
(4)点确定完成本次操作
在编录创建号以后,需要给编录增加目录
(1)右键选择刚刚创建的编录
(2)选择New->Directory(新建目录)
新建索引目录
(1)点击Browse进入目录选择页面
(2)选择要进行全文检索文件的目录
(3)确定完成本次操作
完成创建后启动索引服务
(1)启动索引服务
(2)索引服务启动成功后索引编录的信息,可以看到编录信息就表示服务已经启动成功。
将索引服务和SQL数据库关联:
在SQL 查询分析器(SQL Query Analyer)里执行下面的存储过程
EXEC sp_addlinkedserver Dcs, -- 连接服务器的名字,到后面查询的时候要用到
'Index Server',
'MSIDXS',
'DCSII' -- 索引服务里新建的编录名字
s.p.
索引服务的性能调整方法1
(1)右键选择索引服务
(2)选择 All Tasks-> Tune Perrformance
(3)选择用户自定义
(4)点击Customize进入性能调整窗体
(5)将Index和Querying的属性移动到最右边
(6)点确定完成操作
性能调整方法2
如果服务器不需要对整个系统的文件进行索引,可以停止或者删除System编录。
MS SQL对索引服务器的调用
1. 通过sql语句查询连接服务器的内容
SELECT Q.*
FROM OpenQuery(dcs, --连接服务器名字
'SELECT FileName, Size, DocAuthor, path --在连接服务器里的sql语句
FROM SCOPE()
WHERE CONTAINS(''番号 and abc'') '
) AS Q
2. 因为SQL语句不支持动态输入的字符串,因此查询字符串只好在C#代码里进行拼接
s.p.
其实不用将文件保存到数据库外面也能实现在数据库里实现全文搜索。具体方案是在SQL
Server
2000里安全全文搜索功能,用image字段存储文件内容,并新增一个字段存放文件类型,然后在通过企业管理器新建全文索引项的时候将这两个字段匹配就
可以。不过从数据库的/率以及今后数据库备份和恢复的效率上来看,将文件放在数据库的设计不是太好。
分享到:
相关推荐
针对文件内容的全文检索,本文介绍了一种利用Windows索引服务和MS SQL Server结合的解决方案,使得用户能够在上传的文件中进行高效、准确的全文搜索。 首先,文件存储策略是关键。为了确保文件的独特性和便于索引,...
全文检索功能是SQL Server 2008提供的一个强大特性,它允许用户通过关键词搜索来查找文本数据。这一功能对于那些需要处理大量文本信息的数据库来说尤其有用。下面我们将详细介绍如何在SQL Server 2008中启用并使用...
SQL Server 2005将索引存储在文件系统中,每个表仅支持一个全文索引,通过关键字进行高效检索。 全文检索与传统的关系数据库查询、多维数据查询和XML查询有显著区别。关系数据库查询主要处理结构化数据,而全文检索...
MicroSoft SqlServer 2000/2005 中的全文索引是由一系列存储过程来完成的,这些存储过程按先后顺序罗列如下: 1. 启动数据库的全文索引服务存储过程:sp_fulltext_service 2. 初始化全文索引存储过程:sp_fulltext_...
在Windows环境下,SQL Server利用Windows索引服务(Indexing Service)来实现对文件内容的全文检索功能,这尤其适用于需要检索大量非结构化文档的情况。以下为实施步骤: 1. **文件存储策略**:为了确保文件名的...
本篇内容详细介绍如何使用C#语言在SQL Server数据库中存储和检索图片、文件。 #### 一、背景知识 1. **C#**:一种面向对象的编程语言,由微软开发,广泛用于Windows应用开发。 2. **SQL Server**:由微软提供的...
在SQL Server数据库中,存储文件或二进制大对象(Binary Large Object,简称BLOB)是一种常见的需求。这里我们主要关注如何使用SQL Server中的特定字段类型来存储文件,并结合Delphi进行操作。在SQL Server 2000及...
Log Explorer 4.2 是一款专门针对Microsoft SQL Server的日志分析软件,提供了丰富的功能来管理和分析SQL Server的日志文件。 1. **SQL Server日志类型**: - **事务日志**:记录所有数据库更改操作,包括DML...
《图书管理系统:基于Java与SQL Server的实现》 图书管理系统是一种常见的信息管理软件,它能够...通过深入研究这个系统,开发者可以提升自己在软件工程实践中的能力,尤其是对Java编程和SQL Server数据库运用的理解。
在处理《用SQL Server 2000进行全文检索.pdf》这篇文献时,尽管提供的文档内容存在扫描识别错误,我们仍然能够从中提取关键知识点,并且对其进行整理和解释。首先,需要明确的是全文检索功能是数据库管理系统(DBMS...
相比于早期的SQL Server Native Client(如SQL Server 2005 Native Client),2008版本引入了对新的数据库特性的支持,例如: 1. 支持FILESTREAM:允许将二进制大数据存储为文件系统中的文件,同时保持在SQL Server...
5. **索引**:SQL Server使用索引来加速数据检索,包括B树索引、聚集索引和非聚集索引等。 6. **复制技术**:SQL Server支持数据复制,可以将数据从一个服务器复制到多个服务器,用于分布式系统或灾难恢复。 7. **...
SQLServer2005_BC.msi 文件是这个向后兼容组件的安装程序,它包含了用于在更新的SQL Server环境中模拟SQL Server 2005环境的特定库和接口。安装此组件后,用户可以继续使用那些设计时依赖SQL Server 2005特性的应用...
在SQL Server中,数据库文件是存储数据和元数据的核心组件,它们构成了数据库的基础。本案例提供的"图书订购"数据库文件包含两个主要部分:mdf(主数据文件)和ldf(日志文件)。这两个文件是SQL Server数据库不可或...
4. **高级功能支持**:该驱动程序支持SQL Server特有的功能,如XML数据类型、大型对象(LOB)处理、分区视图、全文搜索、空间数据以及变更跟踪。这使得开发者可以充分利用SQL Server的所有特性。 5. **安全性**:...
在IT行业中,将文件如Word文档或TXT文本存储到SQL Server数据库是一项常见的需求,这有助于集中管理和检索数据。本文将详细讲解如何实现这一操作,主要针对Visual Studio 2003和2005这两个开发环境。 首先,我们...
根据提供的文件信息,可以看出这是一份关于SQL Server的培训材料,包含了从基础知识到具体操作实践的全面内容。接下来,我们将从这些片段中提取并详细解释关键的知识点。 ### SQL Server 基础 #### SQL Server ...
SQL Server数据库从7.0版本开始引入全文检索功能,该功能建立在操作系统提供的搜索服务(Microsoft Search Service)的基础之上,并由搜索服务提供对数据库全文索引和全文查询的支持。随着SQL Server 2000版本的发布...
《SQLServer7指南(下)》是一份专为SQL Server 7.0用户设计的详尽教程,旨在帮助用户深入理解和掌握这一版本的数据库管理系统。SQL Server 7.0是微软发布的一个重要的数据库产品,虽然现在已经较为老旧,但对于理解...
在SQLServer数据库中,存取任意文件是一种常见的需求,特别是在数据存储和检索的场景下。这个实例主要关注如何通过SQLServer来操作二进制大对象(BLOB),即Binary Large Object,来存储和访问非结构化的文件数据,...