因为项目需要,需要对上传的文件内容进行查询。通过MSDN了解到Windows索引服务可以实现对文件的全文检索,并可以通过SQL Server进行查询。项目将这两者结合,实现对上传文件的全文检索的解决方案。
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
方案概要:
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
1. 改变文件存储时的文件名
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
2. 配置索引服务器,并将索引服务器与MS SQL Server关联。
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
3. 修改SQL语句,将进行全文查询语句的内容加入查询条件中
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
文件的存储方式:
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
为了方便存储以及方便索引,我们将上传的文件存储到一个目录里面,为了保证上传的文件名不重复,采用GUID作为文件名,并且通过这个GUID于数据库记录相关联。同时,文件的后缀还保持原始文件的后缀,让索引服务能够识别该文档。
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
配置索引服务
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
进入计算机管理(Computer Management)程序(右键”我的电脑”->”管理”),并找到索引服务(Index Service)
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
配置索引服务的功能
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(1)右键选择索引服务弹出一个菜单
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(2)选择New->Catalog(新建一个编录)
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
设置新增加的编录
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
(1)输入编录的名字(这个名字需要与数据库进行关联,要注意命名,这里假设DCSII
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
(2)点Browse进入选择索引服务运行目录窗体
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
(3)选择前面创建的索引运行目录(任意地方)
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(4)点确定完成本次操作
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
在编录创建号以后,需要给编录增加目录
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(1)右键选择刚刚创建的编录
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
(2)选择New->Directory(新建目录)
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
新建索引目录
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
(1)点击Browse进入目录选择页面
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(2)选择要进行全文检索文件的目录
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(3)确定完成本次操作
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
完成创建后启动索引服务
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
(1)启动索引服务
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
(2)索引服务启动成功后索引编录的信息,可以看到编录信息就表示服务已经启动成功。
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
将索引服务和SQL数据库关联:
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
在SQL 查询分析器(SQL Query Analyer)里执行下面的存储过程
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
EXEC sp_addlinkedserver Dcs, -- 连接服务器的名字,到后面查询的时候要用到
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
’Index Server’,
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
’MSIDXS’,
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
’DCSII’ -- 索引服务里新建的编录名字
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
s.p.
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
索引服务的性能调整方法1
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(1)右键选择索引服务
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
(2)选择 All Tasks-> Tune Perrformance
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(3)选择用户自定义
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
(4)点击Customize进入性能调整窗体
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
(5)将Index和Querying的属性移动到最右边
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
(6)点确定完成操作
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
性能调整方法2
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
如果服务器不需要对整个系统的文件进行索引,可以停止或者删除System编录。
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
MS SQL对索引服务器的调用
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
1. 通过sql语句查询连接服务器的内容
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
SELECT Q.*
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
FROM OpenQuery(dcs, --连接服务器名字
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
’SELECT FileName, Size, DocAuthor, path --在连接服务器里的sql语句
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
FROM SCOPE()
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
WHERE CONTAINS(’’番号 and abc’’) ’
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
) AS Q
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
2. 因为SQL语句不支持动态输入的字符串,因此查询字符串只好在C#代码里进行拼接
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
s.p.
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
实不用将文件保存到数据库外面也能实现在数据库里实现全文搜索。具体方案是在SQL Server 2000里安全全文搜索功能,用image字段存储文件内容,并新增一个字段存放文件类型,然后在通过企业管理器新建全文索引项的时候将这两个字段匹配就可以。不过从数据库的/率以及今后数据库备份和恢复的效率上来看,将文件放在数据库的设计不是太好。

