我们的应用程序允许您将任何文件类型作为blob / image保存到MS SQL DB中。我现在必须提供在文件中搜索文本的功能。类似于标准Windows“在文件中查找”搜索。
实现这一目标的最佳方法是什么?我使用StreamReader读取文件中的所有文本,然后使用Regex进行匹配。只是不确定这是否是在文件中搜索的最有效方式。
由于
答案 0 :(得分:3)
您应该查看SQL Server的全文搜索功能。
以下是一些好文章:
Full-Text Search
SQL Server Full Text Search
SQL Server Full-Text Indexing
我认为你会发现尝试从数据库中撤回许多大型记录,然后在内存中搜索它们效率非常低。这是您的RDBMS擅长的领域,如果配置正确,可以让您的生活更加简单。
答案 1 :(得分:0)
如果在sql server中使用全文搜索,可能会节省大量时间?这将让您查询文件以及处理一些非常复杂的查询。它可以使用iFilters(如microsoft frontpage)搜索blob内部
这是对基础知识的良好入门http://aspalliance.com/1512_understanding_full_text_search_in_sql_server_2005。
这样做可以利用MS在全文搜索中所做的工作;如果您的文件类型不受支持,则从他们的界面中获取(大多数评论文档格式是直接支持的,或者是他们的生产者文档,docx,xls,pdf等)
答案 2 :(得分:0)
在我看来,搜索应该由sql服务器完成,该服务器针对这样的内容进行了优化