当前位置: 代码迷 >> J2SE >> 文件内关键字搜寻
  详细解决方案

文件内关键字搜寻

热度:91   发布时间:2016-04-23 20:24:17.0
文件内关键字搜索
1、大文件内,关键字搜索。
2、将关键字上下10kb左右的内容提取出来。
3、文件大小在100MB,
4、速度要控制在1秒左右

不知各位有什么比较好的办法,正在研究lucene 框架,但是lucene对于 如何提取文件内容还没有研究出来 
------解决方案--------------------
lucene的索引方式怕是还不符合你这个需求

我觉得你可以自己建索引,用lucene分词以后,做一个<key, position>的索引,搜索之后按照position来取前后10kb
------解决方案--------------------
我用的是 Nutch 的 Solr 这两个东西
------解决方案--------------------
似乎没什么难度啊,不要想复杂了,100M的文件甚至都可以一次性读入内存的(我不是让你这么做),一秒钟也很富裕。除非你那个搜索规则本身很复杂(模糊搜索,多词匹配等),否则你就用C++的io来做好了,没问题的。
------解决方案--------------------
1秒这个时间有点苛刻吧。。你要能把100M文件加载到内存或者遍历完那剩下的都好说,最垃圾的算法都行,但是如果你的磁盘IO不给力光加载文件花个四五秒都很常见,除非你建立常驻缓存,省去每次加载文件的时间。
------解决方案--------------------
http://my.oschina.net/u/1017195/blog/195508

我以前写的代码,稍微改进应该能满足需求.
  相关解决方案