2011-08-11 59 views
4

我试图想出一个简单的解决方案,我有一个问题,因为迄今为止我发现的所有这些看起来都太复杂了!索引Word/PDF文件从文件系统到SQL服务器

这种情况是我们使用专有应用程序来管理我们业务的大多数方面。它有一个相当大的SQL Server 2005后端数据库。该应用程序还允许将Word和PDF文档附加到我们广泛使用的记录中,并将这些文件存储在服务器上的文件系统中,并在数据库中引用文件名。不幸的是,应用程序中的搜索设备很差,所以我正在尝试构建自己的版本。

到目前为止,我有一个搜索框,这将允许用户输入单词搜索,以及对其他领域,如部门,日期等过滤器的结果整齐的ASP.NET页面存储过程我在数据库中编写的过程会在数据库的几个不同字段中查找他们要搜索的单词。我真正想要的是Google风格的“一个搜索来统治所有人”的效果,用户不必指定他们希望找到他们要查找的单词的位置,他们只会在任何地方它出现在数据库中。这是工作。

我想现在添加是包括被“连接”到记录文件的文本的功能进行搜索。他们都是.doc或.pdf文件,但如果我不能搜索.pdf文件,它不会是世界的尽头。

在我理想的世界里,我要做的是找到一些能够索引包含文档的文件夹(目前大约有100,000个文件,平均大约100k)的索引,然后用这个索引填充现有数据库中的表格那我可以在我的搜索中加入那张表。我很喜欢它只包含它索引的每个独特单词的记录,以及引用包含该单词的文件系统中的文档的连接表。

鉴于这似乎是空想的,有没有那么将做到这一点,或任何接近它,据我所看到的任何软件,你会推荐什么样的解决方案?服务器已经运行dtSearch,为我感兴趣的文件建立索引。但是,尽管我可以通过文档试图了解如何通过我自己的网页实现对此索引的搜索(我已经开始要做的事情,并发现沉重),这将不得不是一个单独的搜索到一个SQL数据库。我无法以统一的方式返回文件索引和数据库的结果。

所以,从具有存储在数据库中的索引的话,以期实现全文搜索上,你会建议任何人的终极愿望出发?

回答

2

SQL Server有全文搜索(http://msdn.microsoft.com/en-us/library/ms142571.aspx);这支持PDF和word文件(虽然有些皱纹 - 安装可能有点棘手)。链接是SQL Server 2008 - 但自SQL Server 2000以来该功能一直存在。

因此,超简单化 - 您的解决方案将要求您将文档加载到SQL Server中,并修改您的存储过程以使用内置自由文本搜索功能。

保持比文件系统和同步可能是一个挑战文档的数据库版本,但另一方面,我认为解决的办法应该是相当简单。

+0

有趣。我确实想过将文档移动到数据库中,而不是将它们保存在文件系统中。我尝试了解Word或PDF文档创建的记录大小,但没有成功。我知道Word文档特别容易变得非常臃肿,所以我希望他们能够创建非常小的记录。 我也搜索了一种将文档批量导入到SQL数据库并拥有自动导入例程的方法,但没有找到任何内容。对这些事情有任何建议? –

+1

当您将文档导入SQL Server时,它将占用与文件系统上相同的空间量(我认为);然而,全文索引确实非常有效。 将文件存储在一个地方会更优雅 - 但这听起来像是大手术。如果可以的话,那么你应该! 我不知道文档的批量导入脚本,但在PowerShell或类似的应用程序中敲入自定义导入应用程序不应该太大。或者,您可以查看IFilter规范 - 这是搜索引擎用于将文档翻译为纯文本的内容。 –

+0

感谢您的帮助,我会尝试沿着这条路线走下去,并让您知道我如何继续。 –

相关问题