Нечеткий запрос Lucene - PullRequest
0 голосов
/ 18 мая 2018

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

Term t = new Term("description", "history"); 
        Query q = new FuzzyQuery(t, 2); 
        int hitsPerPage = 100; 

        Path indexPath = Paths.get("C:\\Users\\Win 7\\Desktop\\projet_ri\\index");
        Directory directory = FSDirectory.open(indexPath);
        DirectoryReader reader = DirectoryReader.open(directory);
        IndexSearcher iSearcher = new IndexSearcher(reader);

        TopDocs topdocs = iSearcher.search(q, hitsPerPage);
        ScoreDoc[] resultsList = topdocs.scoreDocs; 
        System.out.println("Tab size: "+resultsList.length); // This prints Tab size: 0
        for(int i = 0; i<resultsList.length; i++){ 
            Document book = iSearcher.doc(resultsList[i].doc); 
            String description = book.getField("description").stringValue();
            System.out.println(description);
            }

Программа даже не входит в цикл, я пытался проверить вкладку resultsList, и он печатает, что размер равен нулю. Может кто-нибудь помочь мне исправить мой код или дать пример кода запроса?

1 Ответ

0 голосов
/ 18 мая 2018

Вы на самом деле пропустили использование QueryParser для вашего запроса.Этот QueryParser нуждается в том же Analyzer, который вы используете для индексации.Это действительно важно, иначе набор результатов может отличаться от ожидаемого.Ваша последовательность должна выглядеть примерно так:

  1. открыть индекс
  2. создать IndexSearcher
  3. создать QueryParser с включенным индексированием Analyzer
  4. создать запрос с заданнымусловия поиска
  5. парсинг QueryParser
  6. поиск
  7. закрыть все!

См. базовое руководство по Lucene: https://www.tutorialspoint.com/lucene/lucene_search_operation.htm

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