2

您好,我是 lucene 新手,我使用 lucene 创建了索引。我将两个字段文件名和文件内容添加到 lucene 索引。但是当我从索引中搜索时,我能够获得查询词的出现和包含查询词的文件名。我无法查看我为其创建索引的文件的内容,任何人都可以帮助,请提前致谢

Directory directory = FSDirectory.open(indexDir);
IndexSearcher searcher = new IndexSearcher(directory,true);
QueryParser parser = 
    new QueryParser(Version.LUCENE_30,"contents", new SimpleAnalyzer());
Query query = parser.parse(queryStr);
query.setBoost((float)1.5);
TopDocs topDocs = searcher.search(query, maxHits);
ScoreDoc[] hits = topDocs.scoreDocs;
arr= new String[hits.length];
for ( i = 0; i <hits.length; i++) {
    int docId = hits[i].doc;
    Document d = searcher.doc(docId);
    arr[i]=d.get("filename");
}

我正在使用此代码来读取索引。

4

1 回答 1

3

简而言之,有两个属性与将字段提供给 Lucene 索引相关。

1) 已索引:只能搜索,但不可挽回地丢失,即无法从索引中读回内容。

2) 已存储:这些字段中的内容可以被检索而不会丢失。

我认为,您的“文件名”字段是“索引”和“存储”,而“内容”肯定不是“存储”。

以上是在索引数据时指定的。

您可以参考:1.3 将文档/对象添加到索引

于 2012-09-15T19:10:24.873 回答