我正在使用lucene7.4索引和存储字段。在查看API时,我注意到提供了用于索引大多数数据类型(Byte、Integer、Long、Double、Float、String)的字段类,但没有用于short的字段类。 https://lucene.apache.org/core/7_4_0/core/org/apache/lucene/document/Field.html
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的早期版本。
编解码器已经在将值写入索引时压缩了这些值,因此在索引大小方面,使用短值的IntPoint与实现 ShortPoint .
ShortPoint