Luence簡單實現1

初步認識Luence,簡單按照官方文檔做了個例子,大牛繞開,僅供小白路過參考。如有錯誤,歡迎指正批評。

 

建一個簡單工程,並且加入這幾個小奶瓶,如下圖:

注:版本不同,可能對jdk的需求是不同的,這個需要注意,我在嘗試的6.1.0的時候,在jdk1.7下會報錯,在java8下就沒問題。5.x的在1.7下應該沒問題,具體需要自行百度。

 

然後根據官網例子,稍加修改,如下:本例子基於內存存儲

//創建詞法分析器

Analyzer analyzer = new StandardAnalyzer();
//確定索引文件的位置,方式如下爲 內存存儲
Directory directory = new RAMDirectory();
//Directory directory = FSDirectory.open("/tmp/testindex"); 本地文件存儲

//索引文件的寫入
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter iwriter = new IndexWriter(directory, config);

//創建文檔
Document doc = new Document();
String text = "This is the text to be indexed.";
doc.add(new Field("fieldname", text, TextField.TYPE_STORED));
String text1 = "This is the text to be indexed1.";
doc.add(new Field("testcontent", text1, TextField.TYPE_STORED));

Document doc1 = new Document();
String text2 = "This is the text to be indexed2.";
doc1.add(new Field("fieldname", text2, TextField.TYPE_STORED));

Document doc2 = new Document();
String text3 = "This is the text to be indexed3.";
doc2.add(new Field("fieldname", text3, TextField.TYPE_STORED));
//將文檔寫入索引操作流
iwriter.addDocument(doc);
iwriter.addDocument(doc1);
iwriter.addDocument(doc2);
iwriter.close();

System.out.println("----");

//索引目錄流對象創建
DirectoryReader ireader = DirectoryReader.open(directory);
//創建搜索對象
IndexSearcher isearcher = new IndexSearcher(ireader);

//查詢解析器,第一個參數是默認的搜索域
QueryParser parser = new QueryParser("fieldname", analyzer);
Query query = parser.parse("indexed");

//模糊查詢
Term term = new Term("fieldname","indexed");
FuzzyQuery fuzzyQuery=new FuzzyQuery(term);


//執行搜索,取前一百條符合記錄的數據//這裏使用fuzzyQuery進行模糊查詢,如果用query 只會出現一種結果“indexed”

TopDocs top = isearcher.search(fuzzyQuery, 100);

ScoreDoc[] hits = top.scoreDocs;


for (int i = 0; i < hits.length; i++) {
  Document hitDoc = isearcher.doc(hits[i].doc);
  System.out.println("[Document="+hitDoc+",file:"+hitDoc.get("fieldname")+"].");
  System.out.println("查詢出的結果是:"+hitDoc.get("fieldname"));
}

ireader.close();
directory.close();

 

運行結果如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章