我是一个十足的 Lucene 新手,如果这个问题太基础了,我很抱歉。谷歌搜索没有帮助。我有一些将 Lucene 2 迁移到 5 的代码。旧代码将文档处理为 -
Document doc = new Document();
doc.add(new StringField("id", "id1", Field.Store.YES));
doc.add(new IntField("numBooks",10,Field.Store.YES));
...
新的 Lucene 不再有 IntFields。处理它们的最佳方法是什么?有 NumericDocValuesField,但没有 Field.Store 参数。最好使用什么“字段”类型?
最佳答案
IntField
等数字字段已替换为 PointValues 字段,例如 IntPoint
。如文档中所述,您应该添加单独的 StoredField
实例(如果您需要存储它):
doc.add(new IntPoint("numBooks",10));
doc.add(new StoredField("numBooks", 10));
请参阅Migration Guide了解更多信息。
关于Lucene 6 添加 IntFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659616/