Lucene:如何获取文档的分数 [英] Lucene: how to get the score of a document

查看:14
本文介绍了Lucene:如何获取文档的分数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想输出文档的分数.我为此编写的代码是:

I want to output the score of documents. The code I write for this is that:

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.我想知道如何获取文档的分数.

but the output is NaN. I want to know how to get the score of the document.

推荐答案

        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[] filterScoreDosArray = docs.topDocs().scoreDocs;
        for (int i = 0; i < filterScoreDosArray.length; ++i) {
            int docId = filterScoreDosArray[i].doc;
            Document d = is.doc(docId);
            System.out.println((i + 1) + ". " + d.get("docno")+" Score: "+ filterScoreDosArray[i].score);
        }

试试这个.

这篇关于Lucene:如何获取文档的分数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆