我试图想出一个简单的解决方案来解决我遇到的问题,因为到目前为止我找到的所有问题看起来都太复杂了!
情况是我们使用专有应用程序来管理我们业务的大多数方面.它有一个SQL Server 2005后端数据库,它非常大.该应用程序还允许将Word和PDF文档附加到我们广泛使用的记录中,并将这些文档存储在服务器上的文件系统中,并在数据库中引用文件名.不幸的是,应用程序中的搜索工具很差,所以我正在尝试构建自己的版本.
到目前为止,我有一个简洁的ASP.NET页面,其中包含一个搜索框,允许用户输入要搜索的单词,以及在其他字段中过滤他们的结果,例如部门,日期等.存储过程我’写在数据库中的用户会查找他们在数据库中的几个不同字段中搜索的单词.我真正的目标是谷歌风格的“一次搜索来统治它们”的效果,用户不必指定他们期望找到他们正在寻找的单词的位置,他们只会在任何地方获得点击它出现在数据库中.这是有效的.
我现在想要添加的是搜索能够包含“附加”到记录的文档的文本.它们都是.doc或.pdf文件,但如果我无法搜索.pdf文件,它就不会是世界末日.
在我的理想世界中,我要做的是找到一些软件,它会对包含文档的文件夹进行索引(目前大约有100,000个,平均大约100k)并使用此索引在我现有的数据库中填充一个表,以便我可以只需在我的搜索中包含该表格.我喜欢它只包含索引的每个唯一单词的记录,以及引用包含该单词的文件系统中的文档的连接表.
鉴于这看起来很奇怪,并且没有任何软件可以做到这一点,或者任何接近它的软件,据我所知,你会推荐什么解决方案?服务器已经运行了dtSearch,索引我感兴趣的文件.但是,虽然我可以浏览文档,试图找出如何通过我自己的网页实现对该索引的搜索(我已经开始要做,并且发现重要的事情),这必须是对SQL数据库之一的单独搜索.我无法以统一的方式返回文件索引和数据库的结果.
因此,从将索引词存储在数据库中的最终愿望开始,为了实现全文搜索,有人会建议什么?
最佳答案 SQL Server具有全文搜索功能(http://msdn.microsoft.com/en-us/library/ms142571.aspx);这支持PDF和word文件(虽然有一些皱纹 – 安装可能有点棘手).该链接指向SQL Server 2008 – 但该功能自SQL Server 2000以来一直存在.
因此,超级简单 – 您的解决方案将要求您将文档加载到SQL Server,并修改您的存储过程以使用内置的自由文本搜索功能查询它们.
保持文件的文件系统和数据库版本同步可能是一个挑战,但除此之外,我认为解决方案应该相当简单.