利用Lucene.net对附件做搜索

    最近研究了个全文搜索的,Lucene.net,很有名的开源组件(有Java版本)。其实谈不上研究,就是以前客户有个需要,要能搜索上传文件(如 word Excel Txt 等等),项目中这些附件都存在一个image字段中的,一直没有办法来搜索,本文就讲一下如何利用Lucene.net对附件做搜索功能,并且利用com组件来读取office内容。
介绍一下Lucene.net的使用,使用了Lucene.Net.dll2.1   Highlighter.Net.dll 2.0(高亮)  Lucene.Net.Analysis.Cn.dll 1.3(划词引擎)
1 添加索引
 
 

Code

   其中,把id 的index设为Field.Index.UN_TOKENIZED,差不多就是id做为主键,后面删除索引的时候,直接删除这个id就行

   switch (file.FileType)就是根据附件类型,解析读取内容

 

 2 搜索

   

Code

    现在只对标题(title)和内容(file)做了索引,所以只对这两个字段进行搜索. 最后,返回一个DataTable,包括FileID(记录ID,以便下载附件)和Title(标题). 其中对搜索结果使用了高亮显示Highlighter.

 

 3 删除索引

 

Code

    先创建个Term,然后用IndexReader删除

 

 4 其他一些辅助属性

 

Code

 

5 通过com组件读取office文档内容

 

Code

最后看下Demo的界面

Demo源码下载 

posted @ 2008-07-31 16:59  往事随锋  阅读(1232)  评论(3编辑  收藏  举报