猿问

如何在 Lucene 7.4 中索引短字段

我正在使用 Lucene 7.4 来索引和存储字段。在查看 API 时,我注意到提供了用于索引大多数数据类型(字节、整数、长、双、浮点、字符串)的字段类,但没有用于 Shorts 的字段类。 https://lucene.apache.org/core/7_4_0/core/org/apache/lucene/document/Field.html


我的理解是我可以使用默认的 Field 类为 Shorts 创建一个“自定义”字段类型,但我不确定如何正确构造它,因为我的字段类型没有构造函数:


FieldType shortFieldType = new FieldType();

shortFieldType.setStored(true);

shortFieldType.setTokenized(false);

shortFieldType.setIndexOptions(IndexOptions.DOCS);

shortFieldType.setDocValuesType(DocValuesType.NUMERIC);


Field shortField = new Field("fieldName", ???, shortFieldType);

shortField.setShortValue((Short) shortValue);

document.add(shortField);

我也很好奇为什么 API 中没有定义 ShortPoint 类。我可能可以避免使用 IntPoint,但我想避免浪费空间。我之前所做的所有研究都涉及具有不同类结构的早期 Lucene 版本。


泛舟湖上清波郎朗
浏览 116回答 1
1回答

开满天机

编解码器在将值写入索引时已经对其进行了压缩,因此就索引的大小而言,将 IntPoint 用于短值与实现ShortPoint.
随时随地看视频慕课网APP

相关分类

Java
我要回答