Lucene.NET 2.0示例代码

public void Test1()
{
 //建立一个内存目录
 Lucene.Net.Store.RAMDirectory ramDir = new Lucene.Net.Store.RAMDirectory();

 //建立一个索引书写器
 IndexWriter ramWriter = new IndexWriter(ramDir,new ChineseAnalyzer(), true);

 //要索引的词,这就相当于一个个的要索引的文件
 string[] words = {"
中华人民共和国", "人民共和国", "人民","共和国"}; 

 //循环数组,创建文档,给文档添加字段,并把文档添加到索引书写器里
 Document doc = null; 
 for (int i = 0; i < words.Length; i++)
 {
  doc = new Document();
  doc.Add(Field.Text("contents", words[i]));
  ramWriter.AddDocument(doc);
 }

 //索引优化
 ramWriter.Optimize();

 //关闭索引读写器,一定要关哦,按理说应该把上面的代码用try括主,在finally里关闭索引书写器
 ramWriter.Close();

 //构建一个索引搜索器
 IndexSearcher searcher = new IndexSearcher(ramDir);

 //QueryParser.Parse方法实例化一个查询
 Query query = QueryParser.Parse("
中华人民","contents",new ChineseAnalyzer());

 //获取搜索结果
 Hits hits = searcher.Search(query);

 //判断是否有搜索到的结果,当然你也可以遍历结果集并输出
 if (hits.Length() != 0)
  MessageBox.Show("
");
 else
  MessageBox.Show("
没有
");
}

posted on 2007-11-22 12:35 哥本哈士奇(aspnetx) 阅读(1746) 评论(8) 编辑 收藏

评论:
#1楼 2007-11-23 21:16 | ithurricane      
ChineseAnalyzer是Lucene自带的分词组件吗?

 回复 引用 查看   
#2楼[楼主] 2007-11-24 11:06 | aspnetx      
@ithurricane
是的

 回复 引用 查看   
#3楼 2007-11-24 23:39 | 阿不      
不对吧,里没有带ChineseAnalyzer吧?
 回复 引用 查看   
#4楼[楼主] 2007-11-28 13:11 | aspnetx      
@阿不
是的,不过只是个简单的参考示例而已

 回复 引用 查看   
#5楼 2008-05-27 14:03 | grassland[未注册用户]
doc.Add(Field.Text("contents", words[i]));

2.0里面能够这样用吗?
Field.Text

 回复 引用   
#6楼 2008-06-16 16:50 | 菜无罪1      
QueryParser.Parse("中华人民","contents",new ChineseAnalyzer());
2.0这个会出错..

 回复 引用 查看   
#7楼 2008-09-13 18:13 | lovko      
呵呵,这不是2.0吧,2.0好多方法都修改过也,楼上几位都说得没错!
 回复 引用 查看   
#8楼 2009-02-06 16:03 | 游客11[未注册用户]
@菜无罪1
2.0里不能用

 回复 引用   

文章和随笔为作者个人感悟,不代表任何公司或团体的立场和观点.

如需转载请加上博客园链接.

由于技术更新很快,请各位阅读的时候特意留意下文章的发布时间以及在这个时间相关技术或者产品的版本.

MSN:
aspnetx#live.com
QQ:
63036666
------------
目前关注:
ASP.NET(MVC2)
WPF & Silverlight
.Net framework 4.0
SQLServer2008 BI & GIS
PowerShell
设计模式
数据仓库
软件工程

昵称:哥本哈士奇(aspnetx)
园龄:6年7个月
荣誉:推荐博客
粉丝:112
关注:6

搜索

 

常用链接

随笔分类(358)

关注的博客

网站收集

我的CodePlex项目

积分与排名

  • 积分 - 553678
  • 排名 - 95