从SQL Server数据库创建搜索系统

时间:2009-12-28 04:09:17

标签: sql sql-server database-replication

我最近使用基于Lucene的Regain Search在我公司创建了一个搜索系统来搜索所有软件支持票据。我在SQL中运行一些查询以提取我的数据,导出到Excel,导入到Access,运行一些其他查询,创建报告,将报告导出到.txt文件,并使用文件拆分器将HTML文本拆分为页面它关闭了索引器。总结果是90,000多个被索引的页面,我每天仅更新大约2,000个,因为其余的是关闭的支持事件,这些事件不会改变。结果是一个很棒的搜索功能,但更新记录是一个非常繁琐和手动的过程。

我想将其改造为每晚自动更新的系统(或者至少尝试尽可能地自动更新)。我已经构建了一个SQL 2005服务器并将其链接到我具有读取权限的生产服务器。我想从这里找出最好的方法。表格基本如下:

案例

CaseID CompanyID(FK) 描述 分辨率

活动

ActivityID CaseID(FK) 日期 技术员 评论

公司

CompanyID 公司名 授权类型

上报

EscalationID CaseID(FK) 细节

那么我是否运行“select into”语句来制作一个可以编入索引的大型非规范化表并对其进行搜索?有关于此的一些例子或书籍吗?我需要报告服务吗?最重要的是保持快速的查询速度。现在所有查询几乎立即返回。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您是否研究过SQL Server全文搜索?这听起来像是你想要在这里完成的东西。如果您有报告需求,SQL Reporting服务可以满足此要求。

可以将索引维护设置为实时或按计划进行。

这两种产品在SQL 2005中都很稳定,但如果能够使用SQL 2008,它们都会提供一些改进。

部分全文参考: BOL - http://technet.microsoft.com/en-us/library/ms142571(SQL.90).aspx aspalliance.com/1512_understanding_full_text_search_in_sql_server_2005

一些Reporting Services参考: BOL - technet.microsoft.com/en-us/library/cc917530.aspx RulesToBetterSQLReportingServices - www.ssw.com.au/ssw/standards/Rules/RulesToBetterSQLReportingServices.aspx

两者都有很多好书。

不确定直接针对链接服务器的全文选项是什么,但是您可以始终保留需要排除的内容的本地副本。如果您需要移动数据等,Sql Server Integration Services是我在生产中成功使用多年的可靠产品。