如何在Lucene 7.4中索引短字段

时间:2018-09-10 15:07:05

标签: java lucene

我正在使用Lucene 7.4索引和存储字段。在查看API时,我注意到提供了用于索引大多数数据类型(字节,整数,长整型,双精度型,浮点型,字符串型)的字段类,但没有提供用于短裤的字段类。 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。

1 个答案:

答案 0 :(得分:1)

编解码器已经在将值写入索引时对其进行了压缩,因此就索引的大小而言,使用IntPoint作为短值与实现ShortPoint并没有区别。