本篇的代碼相對簡單,主要是先把lucene添加的demo給搭建起來,後續的修改,刪除,查詢會在後面的文章中一一補上,筆者以爲學習這東西仍是得腳踏實地的一步一步來比較好,只要真真正正理解每一行代碼的意思,咱們就算是有收穫了,有時候學習步伐太快,反而會根基不牢,效果很差。java
須要準備的jar包apache
lucene-core-4.3.1.jar lucene-analyzers-common-4.3.1.jar
package com.qin; import java.io.File; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.StringField; import org.apache.lucene.document.Field.Store; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; /** * Lucene的演示Demo類 * * **/ public class CommonLuceneBasic { /** * 抽象的父類文件夾 * */ public static Directory directory; /** * 返回IndexWriter * */ public static IndexWriter getWriter() throws Exception{ //設置標準分詞器 ,默認是一元分詞 Analyzer analyzer=new StandardAnalyzer(Version.LUCENE_43); //設置IndexWriterConfig IndexWriterConfig iwc=new IndexWriterConfig(Version.LUCENE_43, analyzer); // iwc.setRAMBufferSizeMB(3);//設置緩衝區大小 return new IndexWriter(directory,iwc); } /** * @indexPath 索引存放路徑 * **/ public static void add(String indexWriterPath){ IndexWriter writer=null; try{ directory=FSDirectory.open(new File(indexWriterPath));//打開存放索引的路徑 writer=getWriter(); Document doc=new Document(); doc.add(new StringField("id", "1", Store.YES));//存儲 doc.add(new StringField("name", "張飛", Store.YES));//存儲 doc.add(new StringField("content", "也許放棄,才能靠近你!", Store.YES));//存儲 writer.addDocument(doc);//添加進寫入流裏 writer.forceMerge(1);//優化壓縮段,大規模添加數據的時候建議,少使用本方法,會影響性能 writer.commit();//提交數據 System.out.println("添加成功"); }catch(Exception e){ e.printStackTrace(); }finally{ if(writer!=null){ try{ writer.close();//關閉流 }catch(Exception e){ e.printStackTrace(); } } } } public static void main(String[] args) { String path="E:\\臨時索引"; add(path);//調用添加方法 } }
添加成功以後,咱們就能夠經過luke工具,進行索引查看。工具