【发布时间】:2012-03-19 13:31:34
【问题描述】:
我想输出文档的分数。我为此编写的代码是:
IndexReader reader = IndexReader.open(FSDirectory.open(indexDir));
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new IKAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_31, "title",
analyzer);
Query q = null;
q = parser.parse("MacOS");
TopDocs docs = searcher.search(q, 10);
ScoreDoc[] hits = docs.scoreDocs;
for(int i=0;i<hits.length;++i){
System.out.println(hits[i].score);
}
但输出为 NaN。我想知道如何获取文档的分数。
【问题讨论】:
-
这是获取文档分数的正确方法。您的查询是什么样的?
-
@jpountz 我已经粘贴了所有代码,请帮我检查一下。谢谢
-
你能把调用的结果粘贴到 IndexSearcher.explain 吗?
-
@jpountz 嗨,我已经修好了。要打印分数,我应该设置 defaultFieldSortScoring(true,true)。
-
很高兴您解决了问题。但这意味着您正在对一个字段进行排序,而您粘贴的代码中并非如此!
标签: lucene