общее количество хитов люцен - PullRequest
0 голосов
/ 02 ноября 2011

Я запускаю программу в 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 Ответ

1 голос
/ 02 ноября 2011

Используйте Searcher.search, чтобы получить TopDocs для каждого ключевого слова, затем суммируйте / сортируйте по члену TopDocs.totalHits.

Второй параметр дляsearch не должно иметь значения, если вы просто хотите статистику.Если вы хотите найти все совпадения, задайте для них количество документов в индексе, поскольку это тривиальная верхняя граница для количества обращений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...