美文网首页
Lucene Field类型

Lucene Field类型

作者: caster | 来源:发表于2021-07-15 16:43 被阅读0次

    Field是Document的一部分,每个字段有三部分:名字,类型和值。字段的值可以是text(String,Reader或预先分词的TokenStream),binary(byte[]) 或者数字(Number)。字段类型由接口IndexableFieldType限制,FieldType类实现了此接口,建议当Field实例化后不要修改。

    IndexableField接口定义了Field字段的基本信息,如字段名,字段类型,分词相关等。

    public interface IndexableField {
      //字段名
      public String name();
      //字段类型
      public IndexableFieldType fieldType();
      //分词
      public TokenStream tokenStream(Analyzer analyzer, TokenStream reuse);
      //......
    }
    

    Field类实现了IndexableField接口,作为所有Lucene Field的父类。定义了字段名,字段值和字段类型以及多种字段的构造方法。

    public class Field implements IndexableField {
      //字段类型
      protected final IndexableFieldType type;
      //字段名
      protected final String name;
      //字段值
      protected Object fieldsData;
      //分词
      protected TokenStream tokenStream;
      //构造方法
      protected Field(String name, IndexableFieldType type) {}
      public Field(String name, BytesRef bytes, IndexableFieldType type) {}
      //......
    }  
    

    Field核心属性:
    是否分词(tokenized):id等不需要分词,句子短语等需要拆分为词查询的需要分词。
    是否索引(indexed):将整个字段值或者分词后的词进行索引,用于查询。不需要检索查询的字段可以设置为否。
    是否存储(stored):用于查询返回结果进行展示。

    1. TextField
      分词,索引,存储可选。
    2. StringField
      不分词,索引,存储可选。
    3. IntPoint,LongPoint,FloatPoint,DoublePoint
      分词,索引,不存储(如需存储,添加独立的StoredField)。
    4. StoredField
      不分词,不索引,存储。

    相关文章

      网友评论

          本文标题:Lucene Field类型

          本文链接:https://www.haomeiwen.com/subject/mtvjpltx.html