1.lucene的基本步驟(配**與jar包版本)
2.示例的**
3.完成示例後再該延伸到哪些知識
jar包版本:
一 , 從資料庫中查資料 ====爬資料 -------------1
public arraylistgetdate(string sql) throws sqlexception // 把資料庫裡的資料取出來
return item;
}
二 , // 建立索引存放的位置 ------本方法是建立 在c盤--------------------2
public void createfileindex(string dir)
// 建立標準文字分析器, 標準的是可以支援的中文的
analyzer luceneanalyzer = new standardanalyzer();
indexwriter = new indexwriter(indexdir, luceneanalyzer, true);
// 可以說是建立乙個新的寫入工具
// 第乙個引數是要索引建立在哪個目錄裡
// 第二個引數是新建乙個文字分析器,這裡用的是標準的大家也可以自己寫乙個
// 第三個引數如果是true,在建立索引之前先將c: \\index目錄清空
indexwriter.setmaxfieldlength(100000);
indexwriter.optimize();
} catch (ioexception e)
}
三 , // 新增資料到索引裡去-----------------3
public string createindex(string title, string url, string content) catch (ioexception e)
return "建立索引成功!!!!!!!";
}
四 , // 關閉索引******************************==== 4
public void close() throws ioexception
五 , // 查詢索引的方法 ******************************=5
public arraylistgetquerydate(string info)
throws corruptindexexception, ioexception,
org.apache.lucene.queryparser.parseexception
// }
indexsearcher searcher = new indexsearcher("c:\\hujiong");
analyzer analyzer = new standardanalyzer();
query query = null;
if (searcher != null) ;
query = multifieldqueryparser.parse(querystring, new string , clauses, analyzer); // 這裡就是在兩個範圍內進行收索 , 不過這些索引的字段必須要在新增資料到索引的時候設定它
topdoccollector collector = new topdoccollector(5); // 設定返回的最大數目,就返回前100條
searcher.search(query, collector);
scoredoc hits1 = collector.topdocs().scoredocs;
// 返回的結果他是乙個陣列
if (hits1.length > 0)
} else
} return doc;
}
package phz;
import org.apache.lucene.analysis.standard.standardanalyzer;
import org.apache.lucene.document.document;
import org.apache.lucene.document.field;
import org.apache.lucene.index.indexwriter;
import org.apache.lucene.queryparser.multifieldqueryparser;
import org.apache.lucene.search.booleanclause;
import org.apache.lucene.search.hits;
import org.apache.lucene.search.indexsearcher;
import org.apache.lucene.search.multisearcher;
import org.apache.lucene.search.query;
/*** 這個例項包含了lucene所有核心用法
* * @author panhuizi
* */
public class lucenetest catch (exception e)
system.out.println("ok");
}public void index() throws exception
public void search(string serchstring) throws exception ;
/* 我們需要搜尋兩個域"articletitle", "articletext"裡面的內容 */
string fields = ;
/* 下面這個表示要同時搜尋這兩個域,而且只要乙個域裡面有滿足我們搜尋的內容就行 */
booleanclause.occur clauses = ;
/** multifieldqueryparser表示多個域解析,
* 同時可以解析含空格的字串,如果我們搜尋"中國 金牌",根據前面的索引,顯然搜到的是第二份檔案
*/query query = multifieldqueryparser.parse(serchstring, fields, clauses,
new standardanalyzer());
/* multisearcher表示多目錄搜尋,在這裡我們只有乙個目錄 */
multisearcher searcher = new multisearcher(indexsearchers);
/* 開始搜尋 */
hits h = searcher.search(query);
/* 把搜尋出來的所有檔案列印出來 */
for (int i = 0; i < h.length(); i++)
/* 關閉 */
searcher.close();}}
索引的更新:如果資源內容變了該如何更新索引
原文內容:
lucene的一簡單例子
1.引入lucene包,用到了junit,包搞進來就可以了 2.先跑建立索引檔案的單元測試,有了索引才能查詢嘛,然後在跑下面的檢索資料方法 3.目錄根據自己需要更改哦 private final string indexpath e lucene private final string searc...
lucene常用搜尋例子
public class test 按詞條搜尋 public void termsearcher throws ioexception 短語搜尋 public void phrasesearcher throws ioexception 萬用字元搜尋 wildcardquery 萬用字元包括 匹配乙...
lucene的實戰入門
最近在寫個人部落格專案.有個需求.就是要求在前端頁面上有乙個搜尋框,使用者可以根據這個搜尋框對所有部落格進行全文檢索,包括標題和正文,然後根據搜尋匹配度進行排序展示出來,並且要有高亮顯示,類似如下效果 全文檢索的這個功能可以採用lucene這個框架實現.lucene的具體原理到底是什麼呢?其實就是根...