获得命中列表后的5分钟教程
ScoreDoc[] hits = collector.topDocs().scoreDocs;
使用
获取文件for(int i=0;i<hits.length;++i) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
System.out.println((i + 1) + ". " + d.get("isbn") + "\t" + d.get("title"));
}
所以我看到scoreDoc.doc
是docId
。有没有办法在索引编制过程中将此 docId
设置为任意值?
答案 0 :(得分:0)
不。你也应该从不依赖它们,因为它们在更新文档或合并段时可以改变。
FAQ说:
Lucene
随时可以对文件进行重新编号 如果您需要持久性文档ID,请将其作为字段添加到文档中。
因此,如果您需要具有已知ID,只需在文档中添加其他字段即可。确保该字段存储,然后从搜索结果中检索其值。
这可以像未加密的字符串字段一样简单,如果您需要按范围检索文档,则可以是数字字段。