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类源码解析的主要内容,如果未能解决你的问题,请参考以下文章