import java.io.IOException; import java.nio.file.Paths; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.tr.TurkishAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.LongField; import org.apache.lucene.document.TextField; import org.apache.lucene.document.Field.Store; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.IndexWriterConfig.OpenMode; import org.apache.lucene.queryparser.classic.ParseException; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; public class Test { public static void main(String[] args) throws IOException, ParseException { Directory dir = FSDirectory.open(Paths.get("/Index")); Analyzer analyzer = new TurkishAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(analyzer); iwc.setOpenMode(OpenMode.CREATE); IndexWriter writer = new IndexWriter(dir, iwc); Document d1=new Document(); d1.add(new LongField("id",1,Store.YES)); d1.add(new TextField("content","Ali eve dün geldi",Store.YES)); Document d2=new Document(); d2.add(new LongField("id",2,Store.YES)); d2.add(new TextField("content","Kaya dün evden döndü",Store.YES)); writer.addDocument(d1); writer.addDocument(d2); System.out.println(writer.numDocs() + " document is indexed"); writer.close(); IndexReader reader = DirectoryReader.open(dir); IndexSearcher indexSearcher = new IndexSearcher(reader); QueryParser parser=new QueryParser("content",analyzer); Query query=parser.parse("Ev"); TopDocs topDocs= indexSearcher.search(query, 100); System.out.println(topDocs.totalHits + " adet sonuc bulundu"); ScoreDoc[] scoreDocs=topDocs.scoreDocs; for (ScoreDoc scoreDoc : scoreDocs) { Document doc = indexSearcher.doc(scoreDoc.doc); System.out.println("id:"+doc.get("id")+" content:"+doc.get("content")); } } }Test uygulamasında "Ali eve dün geldi" ve "Kaya dün evden döndü" şeklinde iki içerik index'lenmektedir. Sonra bu indexlenmiş verilerin bulunduğu klasör kullanılarak arama yapılmaktadır. "Ev" ifadesi arandığında iki içerikte sonuçta alınacaktır. Ekranda aşağıdaki gibi açıklamalar görünecektir:
<dependencies>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>5.4.1</version>
</dependency>
</dependencies>