08 2008 档案

摘要:InputStream类有两个子类,RAMInputStream和FSInputStream。 RAMInputStream这个类比较简单,由于父类已经实现了ICloneable接口,这里只是一个形式上的实现。RAMInputStream内聚了一个RAMFile对象。它最复杂的部分,就是重写抽象方法ReadInternal。 代码 2-12 public override void Read... 阅读全文
posted @ 2008-08-14 00:43 Birdshover 阅读(1128) 评论(3) 推荐(1) 编辑
摘要:InputStream这个类在Java基本类库里就有,但是Lucene选择了自己来实现,翻译到dotnet版本,名称保持没变。 阅读全文
posted @ 2008-08-13 01:00 Birdshover 阅读(4120) 评论(0) 推荐(0) 编辑
摘要:MakeLock方法在Java代码里是这样的: 代码 1-12 public final Lock makeLock(final String name) { return new Lock() { public boolean obtain() throws IOException { synchronized (files) { ... 阅读全文
posted @ 2008-08-07 22:16 Birdshover 阅读(1325) 评论(0) 推荐(0) 编辑
摘要:在使用Lucene.Net中,第一个接触的类一般是Directory。它是Lucene存储的一个抽象,由此派生了两个类:FSDirectory和RAMDirectory,用于控制索引文件的存储位置。使用FSDirectory类,就是存储到硬盘;使用RAMDirectory类,则是存储到内存。 图1-1 存储抽象实现UML图 如图1-1,显示了这种关系。而看Lucene代码会发现... 阅读全文
posted @ 2008-08-07 02:35 Birdshover 阅读(3499) 评论(4) 推荐(0) 编辑
摘要:在使用Lucene的过程中,对Lucene的工作方式产生了越来越浓厚的兴趣。于是尝试阅读其中所有的类,整理其内部结构关系,以期能理解Lucene。由于Lucene.Net是从java版本翻译而来,而且采用的是先用翻译器(就是VS2003能使用的那个),所以,对Lucene原本的代码结构产生一定的破坏,因此,阅读时也参考了Lucene Java版的源码。从目前网上能得到的最老版本1.4.3开始。 ... 阅读全文
posted @ 2008-08-06 20:56 Birdshover 阅读(2647) 评论(2) 推荐(0) 编辑
摘要:但是用词库的分词,准确性暂且不说,词库的更新,索引就必须跟着改变。这种方式无疑是成本高昂的。那么StandardAnalyzer分词的优点还是有的。是否可以结合这两种分词的优点呢? 阅读全文
posted @ 2008-08-03 03:33 Birdshover 阅读(2884) 评论(18) 推荐(0) 编辑