昨天到上海了,上海的天气也是阴沉沉的,今天还下雨了,晚上更新了下自己的简历,明天开始找工作的旅程....

继续lucene.net的学习,这次看的是Field.cs。Field这个类的结构很简单,下面列出了Field的所有字段:

 

字段

含义

name

Field名字

fieldsData

Field的数据类型

storeTermVector

是否存储term向量

storeOffsetWithTermVector

是否存储term向量的偏移量

storePositionWithTermVector

是否存储term向量的位置

omitNorms

(这个暂时我也不明白,这个类结构很简单,但是要理解里面每个字段的意思还是需要多了解lucene的原理,有兴趣的话可以参看《lucene in action》这本书)

isStored

是否直接存储

isIndexed

是否进行索引

isTokenized

是进行分词处理

isBinary

是否是二进制流

isCompressed

是否被压缩

而Field类中除了重写ToString方法以外,其他都是一些构造函数以及Get和Set方法,代码逻辑也非常简单。Field类中还定义了三个类,StoreIndex,TermVector。这三个类都是继承自Parameter类,而Parameter类中使用了个叫typesafe enum pattern的设计模式,其实只是为了实现枚举类型,因为在jdk1.4之前,java中并没有枚举类型。从这里可以看出Lucene.net还是严重地保持着java的印记,包括属性的读写也还是通过GetXXX,SetXXX之类的方法,而不是使用.net中的属性。这个可真是汗- -!!!

下面是lucene.net中Field.cs的源码,这次因为代码结构及逻辑都非常简单,所以没加注释。

Field.cs
 posted on 2009-03-02 21:22  Yann  阅读(522)  评论(0编辑  收藏  举报