我有一个文件夹,里面放了几千份word文档,我现在需要用asp.net 在线输入关键字,然后需要去筛选出带有关键字的word文档,有什么好办法吗?

解决方案 »

  1.   

    查名称? 还是word文档里面的内容 只是查名称的话,循环文件夹 得到名称 检索不就好了
      

  2.   

    要查所有word文档的内容
      

  3.   

    应用全文检索工具,比如solr等
      

  4.   

    查内容? 这是不是有点坑爹了。 我来假设一下。 比如你的文档都是{2017110355}这种格式,然后文档的内容以1W字打底。
    先循环出这几千分文档的名字。之后用并行去读取, 这肯定不能用单线程操作,比如查询一个.NET开发。你得把这些文档全部存起来。比如说存到一个datatable里面,或者一个IEnumerable<T>里面,然后进行模糊查询。之后得到有这些关键字的文档名称。
    你可知道需要多长时间。我没真正试过但是用并行的话估计是要大概30秒左右。30秒你觉得客户能忍耐的住吗?另外一个重要的问题就是,用并行会吃掉很大的CUP资源也就是说一旦运行这个查询你服务器的CUP会直接飙升到90%以上,那么会导致你的网站其他页面打开也贼慢。如果你设置并行的数量。那么会导致查询贼慢。
      

  5.   

    应用全文检索工具,比如solr等
    文档里面的内容,用全文检索工具如何检索。这些内容又不在数据库。
      

  6.   

    应用全文检索工具,比如solr等
    文档里面的内容,用全文检索工具如何检索。这些内容又不在数据库。既然叫应用solr工具,当然就有一些准备过程了,不会照现在这个搞法来
    你好好看看solr是个什么东西就知道了
      

  7.   

     先把doc转换成html 然后读取到变量里 字符串.然后搜索...
      

  8.   

    应用全文检索工具,比如solr等
    文档里面的内容,用全文检索工具如何检索。这些内容又不在数据库。既然叫应用solr工具,当然就有一些准备过程了,不会照现在这个搞法来
    你好好看看solr是个什么东西就知道了
    说白了,全文检索还是需要提供数据给这个工具,那么问题还是涉及到读取几千个文档的内容这个问题上面。