項目
wda:https://www.oschina.net/p/wda
WDA 是一個 BS 架構的文檔轉換中間件,配合 openoffice 實現文檔的在線預覽。
概述
checkout此項目,本地git庫會有3個文件,今天我們來簡單說下wda-lucene。
wda-api
wda-lucene
wda-web
核心代碼
創建索引
public class DoIndexTest {
/**
* 1.需要設置一個indexDir(索引路徑),lucene會根據此索引路徑建立索引。
* 2.創建索引生成器
* 3.設置docId,docName
* 4.建立索引
* 5.關閉索引生成器
*/
private static File indexDir = new File("e:\\temp\\index");
public static void main(String[] args) throws Exception {
DocIndexInter dii = DocIndexImpl.getInstance(indexDir);
DocMap mpa = new DocMap(UUID.randomUUID().toString());
String text = "分詞器的建議使用,IKAnalyzer,在開源中文分詞器裏算是很好的,
而且一直在穩定的更新版本。";
//存儲配置:Store.YES 索引配置:Index.ANALYZED
mpa.put("TEXT", text,Store.YES, Index.ANALYZED);
dii.indexDoc(mpa);
dii.close();
}
}
查詢文件
public class DoQueryTest {
/**
* 指定查詢路徑、語句,即可完成查詢,是不是很簡單,跟sql的用法一樣!
* 例如:我們查詢剛纔插入到硬盤裏的索引文件,查詢關鍵詞爲【分詞器】
*/
private static File indexDir = new File("e:\\temp\\index");
public static void main(String[] args) throws Exception {
DocQueryInter query = DocQueryImpl.getInstance(indexDir);
IRResult result = query.query("WHERE(TEXT=分詞器) ORDER_BY(TEXT:STRING ASC)", 1, 10);
for (Map<String, Object> node : result.getResultList()) {
System.out.println(node.get("TEXT"));
System.out.println(node.get("ID"));
}
}
}
控制檯輸出:
<font color=red>分詞器</font>的建議使用,IKAnalyzer,在開源中文<font color=red>分詞器</font>裏算是很好的,而且一直在穩定的更新版本。
c8295d38-1b03-44a8-a69d-3ba7da55f2bb
刪除索引
public class DocDelete {
/**
* 指定索引路徑和docId,即可刪除索引
*/
private static File indexDir = new File("e:\\temp\\index");
public static void main(String[] args) throws Exception {
DocIndexInter dii = DocIndexImpl.getInstance(indexDir);
String docId = "bb73f6bc-eab9-43ff-892b-7e0f32b0375c";
dii.deleteFhysicsIndex(docId);
dii.close();
}
}