共同学习,IFilter Lib预览版首发,请各位兄弟们支持

Posted on 2008-11-24 12:00 A.Z 阅读(...) 评论(...) 编辑 收藏

IFilter是MS Indexing Service中一个重要的接口,也是MS search framework中的核心组件,所有类型的文件的文本搜索必须实现它才能和MS系统相集成。

很早以前有一个叫Eyal Post的人写了一个IFilter的.net wrapper并放在codeproject上供免费使用,http://www.codeproject.com/KB/cs/IFilter.aspx, 2年前我有一个小工具就使用其中的源码。

最近兴趣所致,我仔细读了一下他的代码和Windows SDK,发现他的实现似乎并不是十分的完美,经过研究,终于写了一个我自己的IFilter实现。而原作中取代LoadIFilter的函数的方法是一个非常有意思的亮点,所以复制了该部分的代码。

今天我很高兴得发布一个预览版,包含除了测试工程外的所有源码,想和大家交流一下。

源码下载 : http://files.cnblogs.com/A-Z/Eclipse.IndexingService(Preview).zip

改进如下:

1. 充分的实现了TextReader,该模式可以被任何封装非托管调用的TextReader所参考。

2. 充分实现了IPersist接口的调用,也算是对MS提议的以Stream方式读取的数据的支持。

3. 非常高效的代码,非常少的代码,完全Safe的托管实现。

4. 改进了类工厂的缓存的方式。

5. 变化了部分接口的RCW方式,以及加入了混合方式的IFilter托管类为以后的扩展增加了便利性。

 

下一步将要实现:

1. 释放IFilter资源时删除产生的临时文件

2. 增加 Null Filter的实现

 

 

代码是供大家学习下载,有任何的问题或建议,请留言,我非常想得到大家的反馈。

DUDU让我放首页一天。