有人有一个想法,如何加载lucene搜索者懒惰的字段? 我不明白......
我的Lucene-Indexs'文档包含以下字段:
所以现在我正在搜索索引。当我得到非常多的结果文档时,似乎SF2中的所有内容都被lucene加载,因此RAM非常快。 但是,我需要通过此搜索获得的唯一字段是SF1。此搜索永远不会使用SF2。
是否可以从加载到生成的文档中的特殊字段“SF2”中排除。
// Some initializing and query preparing...
final IndexSearcher searcher = new IndexSearcher(this.getReader());
TopDocs hits = searcher.search(query, maxResults);
ScoreDoc[] scoreDocs = hits.scoreDocs;
for (final ScoreDoc score : scoreDocs) {
final Document document = searcher.doc(score.doc);
final String value = document.get("SF1"); // <-- This is the only needed field of result doc
// collecting value ...
}
编辑:Lucene 4.1 Java-API
答案 0 :(得分:2)
IndexReader
和IndexSearcher
都有方法.document(int docID, Set<String> fieldsToLoad)
,您可以在其中指定要加载的字段。
只需使用它并排除不必要的内容。