2008-01-14
Lucene1.4与Lucene2.0的Field
关键字: field.index, field.store, field.termvector, 项向量, termvector
Field的改进
Lucene1.4主要提供下列四种不同类型的Field:
Keyword,UnStored,UnIndexed,Text
在Lucene2.0中是通过三个内部类Field.Index,Field.Store,Field.termVector(项向量)的组合来区分Field的具体类型.具体如下:
Field.Store.COMPRESS:压缩保存,用于长文本或二进制数据
Field.Store.YES:保存
Field.Store.NO:不保存
Field.Index.NO:不建立索引
Field.Index.TOKENIZED:分词,建索引
Field.Index.UN_TOKENIZED:不分词,建索引
Field.Index.NO_NORMS:不分词,建索引.但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间
Field.TermVector.NO:不保存term vectors
Field.TermVector.YES:保存term vectors
Field.TermVector.WITH_POSITIONS:保存term vectors.(保存值和token位置信息)
Field.TermVector.WITH_OFFSETS:保存term vectors.(保存值和Token的offset)
Field.TermVector.WITH_POSITIONS_OFFSETS:保存term vectors.(保存值和token位置信息和Token的offset)
而Field的构造函数也用到了这三个内部类:
Field(String, byte[],Field.Store)
Field(String, Reader)
Field(String, Reader, Field.TermVector)
Field(String, String, Field.Store, Field.Index)
Field(String, String, Field.Store, Field.Index, Field.TermVector)
其中Field(String, Reader)和Field(String, Reader, Field.TermVector)默认为Field.Index.TOKENIZED和Field.Store.NO的.我们可以很简单的建立起1.4版本的Field类型和2.0间的转换(这看上去似乎没有什么必要,只是觉得对于理解还是有点帮助的)
Keyword <==> Store.YES,Index.UN_TOKENIZED;
UnIndexed <==> Store.YES,Index.NO;
UnStored <==> Store.NO,Index.TOKENIZED;
Text(String, Reader) <==> Store.NO,Index.TOKENIZED;
Text(String,String) <==> Store.YES,Index.TOKENIZED.
Lucene1.4主要提供下列四种不同类型的Field:
Keyword,UnStored,UnIndexed,Text
在Lucene2.0中是通过三个内部类Field.Index,Field.Store,Field.termVector(项向量)的组合来区分Field的具体类型.具体如下:
Field.Store.COMPRESS:压缩保存,用于长文本或二进制数据
Field.Store.YES:保存
Field.Store.NO:不保存
Field.Index.NO:不建立索引
Field.Index.TOKENIZED:分词,建索引
Field.Index.UN_TOKENIZED:不分词,建索引
Field.Index.NO_NORMS:不分词,建索引.但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间
Field.TermVector.NO:不保存term vectors
Field.TermVector.YES:保存term vectors
Field.TermVector.WITH_POSITIONS:保存term vectors.(保存值和token位置信息)
Field.TermVector.WITH_OFFSETS:保存term vectors.(保存值和Token的offset)
Field.TermVector.WITH_POSITIONS_OFFSETS:保存term vectors.(保存值和token位置信息和Token的offset)
而Field的构造函数也用到了这三个内部类:
Field(String, byte[],Field.Store)
Field(String, Reader)
Field(String, Reader, Field.TermVector)
Field(String, String, Field.Store, Field.Index)
Field(String, String, Field.Store, Field.Index, Field.TermVector)
其中Field(String, Reader)和Field(String, Reader, Field.TermVector)默认为Field.Index.TOKENIZED和Field.Store.NO的.我们可以很简单的建立起1.4版本的Field类型和2.0间的转换(这看上去似乎没有什么必要,只是觉得对于理解还是有点帮助的)
Keyword <==> Store.YES,Index.UN_TOKENIZED;
UnIndexed <==> Store.YES,Index.NO;
UnStored <==> Store.NO,Index.TOKENIZED;
Text(String, Reader) <==> Store.NO,Index.TOKENIZED;
Text(String,String) <==> Store.YES,Index.TOKENIZED.
发表评论
- 浏览: 35213 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
struts2 的国际化支持
...
-- by w3cw3c -
C# 加密 java解密 (DES)
对中文加密解密不行啊
-- by fxdfxd -
Hibernate Annotation(三 ...
博主,我看到你导入的注解类是javax.persistence.*; 怎么 ...
-- by flyinglife -
Hibernate Annotation(三 ...
谢谢博主,写的非常之好
-- by flyinglife -
struts2 文件上传
byte[] buffer = new byte[1024*10]; ...
-- by shoru






评论排行榜