package de.tutorials;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.FSDirectory;
public class LuceneExample {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String indexFilePath = "c:/temp/search.index";
FSDirectory index = FSDirectory.getDirectory(indexFilePath);
IndexWriter indexWriter = new IndexWriter(index,
new StandardAnalyzer(), true, MaxFieldLength.UNLIMITED);
indexWriter.addDocument(createDocument("test0",
"Bubushampoo Babashampoo"));
indexWriter.addDocument(createDocument("test1",
"Salamiwurst Schinkenwurst"));
indexWriter.addDocument(createDocument("test2",
"Erdberrmarmelade Brombermarmelade"));
indexWriter.addDocument(createDocument("test3",
"Fischstäbchen Backfisch"));
indexWriter.optimize();
indexWriter.close();
IndexReader indexReader = IndexReader.open(index);
Searcher searcher = new IndexSearcher(indexReader);
Analyzer analyzer = new StandardAnalyzer();
QueryParser queryParser = new QueryParser("contents", analyzer);
queryParser.setAllowLeadingWildcard(true);
Query query = queryParser.parse("*marmelade");
TopDocs topDocs = searcher.search(query, null, 100);
for (ScoreDoc sd : topDocs.scoreDocs) {
Document resultDoc = searcher.doc(sd.doc);
System.out.println(resultDoc.get("title") + " -> "
+ resultDoc.get("contents"));
}
indexReader.close();
index.close();
}
private static Document createDocument(String title, String contents) {
Document document = new Document();
document.add(new Field("title", title, Field.Store.YES,
Field.Index.NOT_ANALYZED));
document.add(new Field("contents", contents, Field.Store.YES,
Field.Index.ANALYZED));
return document;
}
}