Java lucene的总点击数

Java lucene的总点击数,java,lucene,Java,Lucene,我在Lucene运行一个程序。我得到每个单词的点击总数。这意味着它将获取包含我搜索的单词的所有文件 例如: Searching for 'Amazon' Number of hits: 2 Hit: Files\peru.txt Hit: Files\correspondent.txt Searching for 'business' Number of hits: 5 Hit: Files\innovation.txt Hit: Files\xmas.txt Hit: Files\bp.txt

我在Lucene运行一个程序。我得到每个单词的点击总数。这意味着它将获取包含我搜索的单词的所有文件

例如:

Searching for 'Amazon'
Number of hits: 2
Hit: Files\peru.txt
Hit: Files\correspondent.txt
Searching for 'business'
Number of hits: 5
Hit: Files\innovation.txt
Hit: Files\xmas.txt
Hit: Files\bp.txt
Hit: Files\symbian.txt
Hit: Files\peru.txt
Searching for 'environment'
Number of hits: 3
Hit: Files\food.txt
Hit: Files\sarkozy.txt
Hit: Files\symbian.txt
我的第一个问题是如何添加整个查询(2+5+3)的总点击数并显示它们

我的第二个问题是如何按顺序显示结果?从2到3再到5

任何建议都将不胜感激

用于搜索索引和上述输出的代码:

public static void searchIndex(String searchString) throws IOException, ParseException {
        int counter = 0 ;



        System.out.println("Searching for '" + searchString + "'");
        Directory directory = FSDirectory.getDirectory(INDEX_DIRECTORY);
        IndexReader indexReader = IndexReader.open(directory);
        IndexSearcher indexSearcher = new IndexSearcher(indexReader);

        Analyzer analyzer = new StandardAnalyzer();
        QueryParser queryParser = new QueryParser(FIELD_CONTENTS, analyzer);
        Query query = queryParser.parse(searchString);
        Hits hits = indexSearcher.search(query);
        System.out.println("Number of hits: " + hits.length());



        Iterator<Hit> it = hits.iterator();
        while (it.hasNext()) {
            Hit hit = it.next();
            Document document = hit.getDocument();
            String path = document.get(path1);
            System.out.println("Hit: " + path);
        }

    }
}
publicstaticvoidsearchindex(stringsearchstring)抛出IOException、ParseException{
int计数器=0;
System.out.println(“搜索“'+searchString+”);
Directory Directory=FSDirectory.getDirectory(INDEX\u目录);
IndexReader IndexReader=IndexReader.open(目录);
IndexSearcher IndexSearcher=新的IndexSearcher(indexReader);
Analyzer Analyzer=新的StandardAnalyzer();
QueryParser QueryParser=新的QueryParser(字段内容,分析器);
Query=queryParser.parse(searchString);
Hits Hits=indexSearcher.search(查询);
System.out.println(“命中数:+hits.length());
Iterator it=hits.Iterator();
while(it.hasNext()){
Hit=it.next();
Document Document=hit.getDocument();
字符串路径=document.get(路径1);
System.out.println(“命中:+路径);
}
}
}
问候

用于获取每个关键字的
TopDocs
,然后按成员进行求和/排序


如果只需要统计信息,则
搜索的第二个参数应该无关紧要。如果要查找所有点击,请将其设置为索引中的文档数,因为这是点击数的一个微不足道的上限。

我已经编辑了我的帖子并添加了代码。你能告诉我如何根据我的要求来详细说明吗?@HumamShbib:看来你在使用Lucene 2.x API
TopDocs.totalHits
是该API中的
Hits.length()。我想你知道如何对一个列表求和或排序吗?我不知道我试着用了一个计数器,但它什么都没做。你能告诉我如何从每一份文件的hits.length中总结出点击量吗?并以Acsending方式对总数进行排序。@HumamShbib:求和时使用
+
,排序时使用
java.util.Comparator
并使用
Arrays.sort
。我想不出来。你能复制代码并告诉我怎么做吗?我真的很感激。