我在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?
答案 0 :(得分:1)
默认情况下不会存储数字字段。
使用NumericField(String,Field.Store,boolean)构造函数指定如果您想稍后检索它,应该存储它。