我正在使用Lucene 3.0.3 / Java 1.6并在WhitespaceAnalyzer的帮助下创建了这样的索引(每个文档):
doc.add(new Field("sentence", line, Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO));
doc.add(new Field("sentence-lc", line.toLowerCase(), Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.NO));
现在我想使用相同的分析器查询索引:
Query query = parser.parse("+sentence-lc:\"" + QueryParser.escape(subjectLabel) + "\" && +sentence-lc:\"" + QueryParser.escape(objectLabel) + "\"");
ScoreDocs[] hits = indexSearcher.search(query, null, MAX_NUMBER_OF_DOCUMENTS).scoreDocs;
这样可以正常工作,但如果我想打印出这样的已找到文件的数量:
System.out.println(String.format("subject: '%s' and object: '%' returned %s index hits!", subjectLabel, objectLabel, hits.length));
运行索引搜索的线程在没有任何消息/异常的情况下被杀死/完成。这是我的错误,java还是lucene?
亲切的问候,
丹尼尔