Posted in Lucene
lucene-core-3.4.0.jar lucene-core-3.4.0-javadoc.jar lucene-test-framework-3.4.0.jar lucene-test-framework-3.4.0-javadoc.jarJika anda menggunakan Lucene dengan versi yang berbeda, silakan menyesuaikan, dan kalau bingung, masukkan saja semua JAR nya #eh Setelah itu masukkan file XML ke dalam direktori root LuceneProject anda. Berikut ini adalah cuplikan dari file XML tersebut: DataSiswa.xml
<DATABASE NAME="ABSENSI2010"> <!-- SISWA siswa --> <SISWA> <NIS> 1001 </NIS> <NAMA> ADI DANUDIRJA </NAMA> <KELAS> X - 1 </KELAS> <ALAMAT> Jl. Anggrek 37,Kel. ilir, Gunungsitoli, Nias, Sumatera Utara </ALAMAT> </SISWA>Buatlah Form seperti gambar berikut: LuceneForm.java [caption id="" align="alignnone" width="255"]
private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { txtSearch.setText(""); Label.setText(""); }
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) { DeleteDir deleteDir = new DeleteDir(); deleteDir.deleteDir(); }Untuk source code DeleteDir.java dapat dilihat di cara menghapus direktori dengan menggunakan Java
private void btnIndexActionPerformed(java.awt.event.ActionEvent evt) { Index index=new Index(); index.run(); }Untuk code di dalam file Index.java silakan menuju ke tutorial berikut: Mengindex file XML dengan menggunakan Lucene
private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) { DataSearch(txtSearch.getText()); run(); }Method DataSearch()
public void DataSearch(String keywords) { this.keywords = keywords; if(searcher==null){ try{ indexDir = FSDirectory.open(new File("index")); searcher = new IndexSearcher(indexDir); }catch (IOException ex) { Label.setText(ex.getMessage()); } } }Method run() di file LuceneForm.java
public void run() { TopDocs docs = search(); String result = getResults(docs); Label.setText(result); }Method TopDocs search()
private TopDocs search() { TopDocs resultDoc = null; try { MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_31, new String[]{"NIS", "NAMA", "KELAS", "ALAMAT"}, new StandardAnalyzer(Version.LUCENE_31)); Query query = parser.parse(keywords); resultDoc = searcher.search(query, 10); } catch (Exception ex) { Label.setText(ex.getMessage()); } return resultDoc; }Method getResult (TopDocs docs)
private String getResults(TopDocs docs) { StringBuilder htmlFormat = new StringBuilder(); htmlFormat.append("<html><body>"); htmlFormat.append("Ditemukan <b>" + docs.totalHits +"</b> dokumen <br>"); for (ScoreDoc sd : docs.scoreDocs) { int docId = sd.doc; try { Document doc = searcher.doc(docId); htmlFormat.append("<hr>" + "score: " + sd.score + "<br><b>Siswa</b>: " + doc.get("NAMA") + "<br>"); htmlFormat.append("<b>NIS</b>: " + doc.get("NIS") + "<br>"); htmlFormat.append("<b>Nama</b>: " + doc.get("NAMA") + "<br>"); htmlFormat.append("<b>Kelas</b>: " + doc.get("KELAS") + "<br>"); htmlFormat.append("<b>Alamat</b>: " + doc.get("ALAMAT") + "<br>"); } catch (IOException ex) { Label.setText(ex.getMessage()); } } htmlFormat.append("</body></html>"); return htmlFormat.toString(); }Selamat mencoba.