Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.index.Term;
- import org.apache.lucene.queryParser.ParseException;
- import org.apache.lucene.search.FuzzyQuery;
- import org.apache.lucene.search.Query;
- import org.apache.lucene.search.ScoreDoc;
- import org.apache.lucene.search.TopDocs;
- import test.Indexer;
- import test.TextFileFilter;
- public class LuceneTester {
- String indexDir = "C:\\Users\\Fsociety\\Desktop\\lucene-3.6.2\\indexes";
- String dataDir = "C:\\Users\\Fsociety\\Desktop\\lucene-3.6.2\\data";
- Indexer indexer;
- Searcher searcher;
- public static void main(String[] args){
- LuceneTester tester;
- try{
- tester = new LuceneTester();
- tester.createIndex();
- BufferedReader br;
- String choice = "";
- System.out.println("****** Lucene Index, Search Tester ******");
- System.out.println("Wprowadz szukany term: ");
- br = new BufferedReader(new InputStreamReader(System.in));
- try{ choice = br.readLine(); } catch (IOException e){ e.printStackTrace(); }
- try{ br.close(); } catch (IOException e1){ e1.printStackTrace(); }
- String[] searcharray = choice.split(" ");
- for (int i = 0; i < searcharray.length; i++){
- System.out.println("Wyniki wyszukiwania dla slowa " + (i+1) + ": " + searcharray[i]);
- tester.searchUsingFuzzyQuery(searcharray[i]);
- }
- } catch (IOException e){
- e.printStackTrace();
- } catch (ParseException e){
- e.printStackTrace();
- }
- }
- private void createIndex() throws IOException{
- indexer = new Indexer(indexDir);
- int numIndexed;
- long startTime = System.currentTimeMillis();
- numIndexed = indexer.createIndex(dataDir, new TextFileFilter());
- long endTime = System.currentTimeMillis();
- indexer.close();
- System.out.println(numIndexed + " Plik zaindeksowany w czasie: " + (endTime-startTime) + " ms");
- }
- private void searchUsingFuzzyQuery(String searchQuery) throws IOException, ParseException {
- searcher = new Searcher(indexDir);
- long startTime = System.currentTimeMillis();
- Term term = new Term(LuceneConstants.CONTENTS, searchQuery);
- Query query = new FuzzyQuery(term);
- TopDocs hits = searcher.search(query);
- long endTime = System.currentTimeMillis();
- System.out.println(hits.totalHits + " znaleziono dokumentow, Czas :" + (endTime - startTime) + "ms");
- for(ScoreDoc scoreDoc : hits.scoreDocs){
- Document doc = searcher.getDocument(scoreDoc);
- System.out.print("Wynik: " + scoreDoc.score + " ");
- System.out.println("Plik: " + doc.get(LuceneConstants.FILE_PATH));
- }
- searcher.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement