【发布时间】:2013-03-08 12:29:59
【问题描述】:
我正在使用 apache lucene 为日志文件创建一个文本搜索应用程序。我正在使用下面的代码来索引文件
doc.add(new LongField("modified", file.lastModified(), Field.Store.NO));
doc.add(new TextField("contents", new BufferedReader(new InputStreamReader(fis, "UTF-8"))));
doc.add(new StoredField("filename", file.getCanonicalPath()));
我在这里为每个文件创建 3 个索引但是在搜索时我只能检索一个索引的值,其他两个索引为空。这是搜索端代码
Document d = searcher.doc(docId);
System.out.println(i+":File name is"+d.get("filename"));
System.out.println(i+":File name is"+d.get("modified"));
System.out.println(i+":File name is"+d.get("contents"));
我得到的输出是
2 total matching documents
0:File name is/home/maclean/NetBeansProjects/LogSearchEngine/src/SimpleSearcher.java
0:File name isnull
0:File name isnull
1:File name is/home/maclean/NetBeansProjects/LogSearchEngine/src/SimpleFileIndexer.java
1:File name isnull
1:File name isnull
我做错了什么
【问题讨论】:
-
使用 Field.Store.YES 代替 Field.Store.NO
标签: java jakarta-ee lucene