0

我正在用 java 编写代码并使用 lucene 3.4 来索引文本文档。每个文档都有一个id和一些其他数值以及内容和标题。

我根据以下代码将每个文档添加到索引中:

Document doc = new Document();
doc.add(new NumericField("id").setIntValue(writer.numDocs()));
doc.add(new NumericField("year").setIntValue(1988));
doc.add(new Field("content", new FileReader(file)));
writer.addDocument(doc);
writer.close();

但是当我搜索并想要获取结果时,它会为这些字段返回 null。我知道每当我添加一个字段并设置 Field.Store.NO 时,它都会返回null,但为什么现在会发生呢?我应该怎么做才能获得这些字段的值?

doc.get("id");     //why it returns null? what should I do?
4

1 回答 1

1

默认情况下不存储数字字段。

使用 NumericField(String, Field.Store, boolean) 构造函数指定如果您想稍后检索它应该存储它。

于 2013-08-12T14:33:31.327 回答