如何在lucene文档中存储数值?

时间:2013-08-12 14:27:19

标签: java search lucene

我在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?

1 个答案:

答案 0 :(得分:1)

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

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