代码之家  ›  专栏  ›  技术社区  ›  Steve

如何索引lucene7.4中的短字段

  •  0
  • Steve  · 技术社区  · 6 年前

    我正在使用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的早期版本。

    1 回复  |  直到 6 年前
        1
  •  1
  •   femtoRgon    6 年前

    编解码器已经在将值写入索引时压缩了这些值,因此在索引大小方面,使用短值的IntPoint与实现 ShortPoint .