命中总数

时间:2011-11-02 15:53:54

标签: 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
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);
        }

    }
}

的问候。

1 个答案:

答案 0 :(得分:1)

使用Searcher.search获取每个关键字的TopDocs,然后按成员TopDocs.totalHits汇总/排序。

如果您只想要统计数据,那么search的第二个参数无关紧要。如果要查找所有匹配,请将其设置为索引中的文档数,因为这是命中数的一个微不足道的上限。