Lucene(7.3.1)学习笔记-Document类源码解析

Posted Swagger社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene(7.3.1)学习笔记-Document类源码解析相关的知识,希望对你有一定的参考价值。

本笔记针对Lucene版本为7.3.1

介绍

Document对象是Lucene中搜索和索引的最小单元,一个文档对象,包含多个属性字段集合列表,每个字段对象都包含名称及字段值.

Documet类图结构



Document类实现了Iterable接口,接收IndexableField泛型类型

每个Document对象维护一个fields集合列表,Java代码如下:

private final List<IndexableField> fields = new ArrayList<>();

构造函数


/** Constructs a new document with no fields. */
public Document() {}

方法

返回类型 方法 描述
void add(IndexableField field) 添加字段到文档中.
void clear() 清除文档中所有字段.
String get(String name) 返回字段string值,如果字段拥有相同的name,则返回最先添加的字段,否则返回null.
BytesRef getBinaryValue(String name) 返回最先添加的字段name二进制值.
BytesRef[] getBinaryValues(String name) 返回字段name的二进制值数组.
IndexableField getField(String name) 返回字段.
List<IndexableField> getFields() 返回只读字段List集合.
IndexableField[] getFields(String name) 返回name匹配的字段数组.
String[] getValues(String name) 返回name匹配的字段值数组.
Iterator<IndexableField> iterator()
void removeField(String name) 移除第一个匹配name的字段.
void removeFields(String name) 移除所有name匹配的字段.
String toString() 打印文档字段列表.

IndexableField

索引的单个字段,该类是接口,主要包括方法:名称、索引类型、等

类图如下:



子类实现:

  • TextField

  • StringField

  • IntPoint

  • LongPoint

  • FloatPoint

  • DoublePoint

  • SortedDocValuesField

  • SortedSetDocValuesField

  • NumericDocValuesField

  • SortedNumericDocValuesField

  • StoredField


以上是关于Lucene(7.3.1)学习笔记-Document类源码解析的主要内容,如果未能解决你的问题,请参考以下文章

Lucene学习笔记-------Lucene基础

lucene学习笔记一:lucene是什么实现步骤以及索引的创建查询修改删除

lucene学习笔记

学习笔记--Lucene分词器详解

Lucene学习笔记

lucene学习笔记