Advertisement
Guest User

LuceneTester.java

a guest
Apr 26th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1. package test;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6.  
  7. import org.apache.lucene.document.Document;
  8. import org.apache.lucene.index.Term;
  9. import org.apache.lucene.queryParser.ParseException;
  10. import org.apache.lucene.search.FuzzyQuery;
  11. import org.apache.lucene.search.Query;
  12. import org.apache.lucene.search.ScoreDoc;
  13. import org.apache.lucene.search.TopDocs;
  14.  
  15. import test.Indexer;
  16. import test.TextFileFilter;
  17.  
  18. public class LuceneTester {
  19.  
  20.     String indexDir = "C:\\Users\\Fsociety\\Desktop\\lucene-3.6.2\\indexes";
  21.     String dataDir = "C:\\Users\\Fsociety\\Desktop\\lucene-3.6.2\\data";
  22.     Indexer indexer;
  23.     Searcher searcher;
  24.    
  25.     public static void main(String[] args){
  26.         LuceneTester tester;
  27.        
  28.         try{
  29.             tester = new LuceneTester();
  30.             tester.createIndex();
  31.            
  32.             BufferedReader br;
  33.             String choice = "";
  34.             System.out.println("****** Lucene Index, Search Tester ******");
  35.             System.out.println("Wprowadz szukany term: ");
  36.            
  37.             br = new BufferedReader(new InputStreamReader(System.in));
  38.             try{ choice = br.readLine(); } catch (IOException e){ e.printStackTrace(); }
  39.             try{ br.close(); } catch (IOException e1){ e1.printStackTrace(); }
  40.            
  41.             String[] searcharray = choice.split(" ");
  42.             for (int i = 0; i < searcharray.length; i++){
  43.                 System.out.println("Wyniki wyszukiwania dla slowa " + (i+1) + ": " + searcharray[i]);
  44.                 tester.searchUsingFuzzyQuery(searcharray[i]);
  45.             }
  46.         } catch (IOException e){
  47.             e.printStackTrace();
  48.         } catch (ParseException e){
  49.             e.printStackTrace();
  50.         }
  51.     }
  52.    
  53.     private void createIndex() throws IOException{
  54.         indexer = new Indexer(indexDir);
  55.         int numIndexed;
  56.         long startTime = System.currentTimeMillis();
  57.         numIndexed = indexer.createIndex(dataDir, new TextFileFilter());
  58.         long endTime = System.currentTimeMillis();
  59.         indexer.close();
  60.         System.out.println(numIndexed + " Plik zaindeksowany w czasie: " + (endTime-startTime) + " ms");
  61.     }
  62.    
  63.     private void searchUsingFuzzyQuery(String searchQuery) throws IOException, ParseException {
  64.         searcher = new Searcher(indexDir);
  65.         long startTime = System.currentTimeMillis();
  66.         Term term = new Term(LuceneConstants.CONTENTS, searchQuery);
  67.         Query query = new FuzzyQuery(term);
  68.        
  69.         TopDocs hits = searcher.search(query);
  70.         long endTime = System.currentTimeMillis();
  71.        
  72.         System.out.println(hits.totalHits + " znaleziono dokumentow, Czas :" + (endTime - startTime) + "ms");
  73.         for(ScoreDoc scoreDoc : hits.scoreDocs){
  74.             Document doc = searcher.getDocument(scoreDoc);
  75.             System.out.print("Wynik: " + scoreDoc.score + " ");
  76.             System.out.println("Plik: " + doc.get(LuceneConstants.FILE_PATH));
  77.         }
  78.         searcher.close();
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement