分析wda-lucene

項目

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();
    }

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