Lucene Field 分析笔记

      Field 类也许是在文档索引期限间最重要的类了:该类在事实上控制着被索的域值。当创建好一个域时,你可以指定多个域外选项来控制Lucene在将文档添加进索引后针对该域的行为。

 

 

AbstractField
--->Field
--->FieldForMerge
--->LazyField
--->NumericField

 从源代码中,可以看出Field 构造函数如下

org.apache.lucene.document.Field
Field(String, boolean, String, Store, Index, TermVector)
Field(String, byte[])
Field(String, byte[], int, int)
Field(String, byte[], int, int, Store)
Field(String, byte[], Store)
Field(String, Reader)
Field(String, Reader, TermVector)
Field(String, String, Store, Index)
Field(String, String, Store, Index, TermVector)
Field(String, TokenStream)
Field(String, TokenStream, TermVector) 

 三个内部类Field.Index,Field.Store,Field.termVector

org.apache.lucene.document.Field.Index
public static final Index NO;不建立索引 
public static final Index ANALYZED;分词,建索引
public static final Index ANALYZED_NO_NORMS;分词,建索引(但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储 空间)
public static final Index NOT_ANALYZED;不分词,建索引
public static final Index NOT_ANALYZED_NO_NORMS;不分词,建索引(但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储 空间)

org.apache.lucene.document.Field.Store
public static final Store YES;保存
public static final Store NO;不保存

org.apache.lucene.document.Field.TermVector这个参数也不常用,它有五个选项。
Field.TermVector.NO表示不索引Token的位置属性;
Field.TermVector.YES则表示存储向量。
Field.TermVector.WITH_OFFSETS表示额外索引Token的结束点;
Field.TermVector.WITH_POSITIONS表示额外索引Token的当前位置;
Field.TermVector.WITH_POSITIONS_OFFSETS表示额外索引Token的当前和结束位置;

 源码实例:

Field name=new Field("name","Leiwuluan",Store.YES,Index.NOT_ANALYZED);
Field name=new Field("age","23",Store.YES,Index.NOT_ANALYZED);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值