jforum中的 lucene

(1)通過JForumBaseServlet類中的startApplication方法,啓動了ConfigLoader.startSearchIndexer();
(2)ConfigLoader類中的startSearchIndexer,執行了SearchFacade.init()
public static void startSearchIndexer()
{
SearchFacade.init();
}
(3)SearchFacade類,
主要是創建了靜態類SearchManager;
執行了searchManager.init();
(4)接口類 interface SearchManager
class LuceneManager implements SearchManager
LuceneManager類:
創建了3個 類:
private LuceneSearch search;
private LuceneSettings settings;
private LuceneIndexer indexer;
這樣在初始化的過程中,需要的類基本上都用到了。

(5)然後在類GenericPostDAO(主要負責帖子的創建、刪除、更新)中
public int addNew(Post post)
{
try {
this.addNewPost(post);
this.addNewPostText(post);

// Search
SearchFacade.create(post);

return post.getId();
}
catch (Exception e) {
throw new DatabaseException(e);
}
}
增加一個帖子,此時使用SearchFacade.create(post);
(6)進入SearchFacade.create(post),
public static void create(Post post)
{
if (isSearchEnabled()) {
searchManager.create(post);
}
}
(7)進入searchManager.create(post);
調用 LuceneManager 中的 create方法:
public void create(Post post)
{
this.indexer.create(post);
}
(8) LuceneIndexer中的create方法:
public void create(Post post)
{
Document document = this.createDocument(post);
writer.addDocument(document);
}
進行索引。
刪除、更新索引等操作最後都是通過LuceneIndexer類中的方法完成的。
發佈了45 篇原創文章 · 獲贊 0 · 訪問量 2406
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章