5年,50+版本迭代,不忘初心,始終爲了幫助廣大站長更容易實現站內搜索功能前端
一,開發初衷與思路:瀏覽器
基於Lucene.net重頭開發一個站內搜索其實挺費時,且須要必定的二開能力,不少人直接組合一些第三方開源的組件,但若是須要解決好搜索質量,兼顧搜準率與召回率,依然須要作很多調整優化的工做,後來我想可否簡化一下Lucene.net的使用,因此把分詞,配置,索引,搜索等各類底層API等封裝成更易於使用的一箇中間件(就是上圖的SearchEasy.SearchEngine類庫),可是由於中間件很差用,乾脆就直接把站內搜索的前端也作了,這樣用戶就無需作任何二次開發,直接在瀏覽器點點鼠標就能夠解決數據導入,建立索引,而後搜索直接就能用了,這個站內搜索系統是這麼演化過來的,並且在多年的實踐當中,也作了不少細節優化工做。架構
二,核心組件:框架
Lucene.net : 搜索引擎的核心類庫,第三方開源;優化
Newtonsoft.Json :用於處理JSON的第三方庫;搜索引擎
TemplateEngine :用於生成靜態頁面的模板引擎;spa
中文分詞:本身開發,沒有用第三方的。.net
三,項目架構中間件
基於.NET 4.0框架,傳統的三層架構,但在解決方案中的體現是兩個項目:blog
SearchEasy.SearchEngine : 搜索引擎類庫,整合了Lucene,分詞器,以及各類搜索相關的封裝類庫。
SearchEasy.SiteSearch : WEB項目,後臺管理與前臺搜索代碼,搜索部分沒有用僞靜態,純動態的,其中的聚合頁生成系統是基於模板引擎生成靜態頁面的。
解決方案示意圖:
四,心得體會
固然了,最後不得不說,這個小做品真的不是那麼好作,能堅守到現在,純粹靠的是一份情懷的。拿那麼長的時間,去任何TO B的軟件,估計都能比這個好不少,但從業確確實實幫助了一些站長,認識了很多的站長朋友,也許,收穫的見識比自己的收穫更多吧。
送給廣大技術朋友的一份建議:選擇比努力更重要,方向很重要,方向很差不必定能能守得雲開見月明
可是,產品自己仍是不錯的,用的站長都說好,方便靈活,簡單易用,小衆是天然的啦,喜歡折騰與高大上技術的天然選擇ES,SOLR去了。