天天看點

Compass實戰 站内搜尋

今天早上打算對這兩天學習的Lucene以及Compass總結一下,想來想去,還是寫個小項目來驗證最好了。于是就有了今天的這篇文章。難易程度适合對于Compass或者Lucene剛入門的童鞋,大牛看到後望輕噴 :-)

<a href="#%E9%A1%B9%E7%9B%AE%E9%A2%84%E8%A7%88">項目預覽</a>

<a href="#%E9%A1%B9%E7%9B%AE%E9%9C%80%E6%B1%82">項目需求</a>

<a href="#%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95">項目目錄</a>

<a href="#%E6%A0%B8%E5%BF%83%E5%A4%84%E7%90%86">核心處理</a>

<a href="#%E5%8F%91%E5%B8%96%E9%83%A8%E5%88%86">發帖部分</a>

<a href="#%E6%9F%A5%E8%AF%A2%E9%83%A8%E5%88%86">查詢部分</a>

<a href="#%E6%80%BB%E7%BB%93">總結</a>

Compass實戰 站内搜尋
Compass實戰 站内搜尋

這是一個小項目,唯一實作的就是發帖以及站内搜尋功能。是以我們的目标很明确了。由于這裡僅僅是示範Compass的實作,是以就沒有整合資料庫的那一塊,即保證資料庫和索引庫資訊的一緻性。(這一點在Business層進行控制即可)。

一個邏輯清晰的項目目錄可以幫助我們快速了解和學習。

Compass實戰 站内搜尋

引用到的jar包有:

Compass實戰 站内搜尋

由于代碼比較多,是以一個個的貼出代碼也沒什麼價值。文末我會将項目的下載下傳位址分享出來。這裡僅僅是講解一下核心處理部分。

Created with Raphaël 2.1.0在index.jsp頁面填寫表單表單将資料交給PublishArticleServletServlet調用DAO層代碼實作資料“持久化,索引化”業務完成

Created with Raphaël 2.1.0在index.jsp頁面填寫查詢内容表單将資料交給SearchServletServlet調用DAO層代碼擷取查詢到的資料結果,并做了處理在視圖層中展示查詢結果,并高亮關鍵字

本例主要是以MVC模式為架構實作。邏輯上自認為還是比較清晰。

我們在開發的過程中隻要按照自己的業務需求來定制自己的實體層資料即可。詳見本例<code>domain.Article.java</code>的實作。

最後,附上本項目的下載下傳位址。請自取,另外如果您覺得這個例子還不錯,請不要吝啬您的星星,Star一下吧。

Created with Raphaël 2.1.0下載下傳位址↓↓

<a href="https://github.com/guoruibiao/Compass-Impl">Compass-Impl站内搜尋實戰</a>