Lucene火併GSA – 由技術的選擇說起

0

Posted by Victorlau | Posted in IT Sleepless, 自說自話 | Posted on 03-Mar-2010

這不是一篇Lucene的實例教程, 也不是GSA的使用介紹. 純粹只是借用Lucene和GSA這兩個大名鼎鼎的產品, 來分享一下在項目開發前期, 對技術選擇的看法.

GSA全稱是Google Search Appliance, 以前有介紹過一點, 就是Google把自己的搜索引擎技術封裝到一部Linux服務器里, 讓企業們可以方便而又簡單地直接利Google Search來實現強大的全文搜索功能. 有著Google 獨步天下的搜索算法的基因, 這個產品效能是相當高的, 同時相當容易使用. 不過大家都應該猜到, 這個產品不是免費的, 是純商業產品. 而且沒有試用版, 更加沒有免費版.

至於Lucene, 是Apache Software Foundation旗下的一個項目, 它可能是ASF眾多項目里除了幾個著名Server產品以外最出名的項目. Lucene 的功能十分強大, 而且效能很高, 在我看來, 一點也不比GSA差, 甚至可能更好. 做開發的朋友可能都知道, 既然是ASF 的產品, 那就是免費了? 沒錯, Lucene 是可以無條件地免費使用的. 但這里要注意, 免費使用, 不等於沒有項目成本.

看一下GSA的成功例子, 相當有說服力; 再翻一下Lucene的“PoweredBy”列表, 更加是有過之而無不及. 這里第一個問題就出來了, Lucene 更強大一些, 又是免費的, 那不用想都知道要用Lucene好了. 對的, 如果沒有想的話, 當然是選擇Lucene. 可是當仔細分析想想以後, 就不一定了.

Lucene 的優點是可配置性高, 可以最大限度地根據我們的項目來量身訂造. 但Lucene的易用性相比GSA, 要差好多, 就算是最出名的衍生物Solr 也還不夠GSA來得容易使用(也許, 拿Solr來跟GSA比較才算公平). 比起GSA那種One-Box設計, 幾下配置, 選幾個Drop down menu就一切OK, Lucene 的配置, 使用及開發難度, 就算不是好像學開飛機, 也是跟學開車差不遠了. 在這點上, Lucene 的開發成本要比GSA來得高好多, 雖然使用免費, 但開發隊伍的人數要增加, 技術水平要求提高, 開發時間也要拖長, 整個項目的成本也就增加了不少. 如果算上後期維護的人力成本, 那GSA的一次性付費可能反而更經濟一點.

有些人對開源的免費產品過份迷信, 尤其是高層管理人員. 他們往往覺得免費的東西總是好的, 有時會過份盲目而考慮不周. 這就有點像Linux和Windows的比較, 雖然Linux免費, 但要把它放到辦公室里全民使用, 可能IT人員的工作量要大增, 其他員工的工作效率也會大大降低, 雖然省了一筆版權費, 可是培訓, 維護還有低效率而浪費的資源可能反而更高. 任何技術會存活下來, 並成為一個出名的產品, 就一定有其在某方面的優勢. 我們在選擇要使用的技術就是要清楚自己手上的資源情況, 分析各項優勢和劣勢, 好好想想, 開發成本哪個大? 減掉使用成本呢? 後期維護成本呢? 效能是不是對項目最好的? 再來選出最適合的那項技術來使用. 不能盲目, 更不能過分迷信. 最怕是”撿到芝麻掉西瓜”, 這邊小賺, 那邊卻虧大.

回到GSA和Lucene的例子, GSA在Intranet的資源搜索功能(內聯網, 定制要求往往比較低) 是好用的, 它能自動處理好如Word, Excel, PDF 等各種複雜文件類型(公司內部主要的共享資源類型), 還有中文支持能力可算優異, 只要幾下配置就立刻能用, 十分方便. 對要求簡單的網站搜索功能也是一個不錯的考慮. 缺點是除了售價高之外, 還要一個獨立的服務器空間, 這在選擇hosting時可能帶來困擾, 另外跟其他系統的溝通協作要通過HTTP請求, 這有時候是很慢的(尤其在澳門這種上傳速度超慢的ADSL世界). 如果以上這些就是你想要的, 而且GSA的售價是你能接受的, 又或者你的公司開發人員不多, 那就直接用GSA吧. 如果不到迫不得已, 我們都不要去做發明車輪的事情. 相反, 如果你覺得GSA太貴, 又或者需要大量的定制功能, 或者效能要求很高, 又或者開發隊伍的技術水平很有自信等等, 那不妨選擇”免費又自由”的Lucene (或者Solr).

其實, 拿GSA跟Lucene比較是不公平的, 真正要跟GSA比較的是Solr才對, 但用Lucene可以誇大差距, 增加能說明的考慮點. 同樣的選擇比較還有好多, 例如是應該用MS SQL Server呢? 還是使用MySQL? 應該使用.NET + Windows Server 還是直接用Linux Server+ J2EE 呢? 用昂貴的SAP ERP 好還是其他開源產品呢? 等等比較多不勝數. 每個項目都有自身的限制和要求, 而每項被拿來對比的技術都會各有優劣, 沒有絕對好, 也沒有絕對不好, 我們要做的就是以開放的態度來看待每項技術產品, 按照實際的情況來選擇出最有效果的那種.

Post to Twitter Post to Plurk Post to Delicious Post to Digg Post to Facebook Post to StumbleUpon

Related posts:

  1. OpenX vs. Ad-Blocker – 如何逃過廣告封阻
  2. 這是一個瘋狂併購的年代
  3. Google與中國市場的愛情
  4. Google Doodles的創意
  5. 另類中美比較

Tags: , ,

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Write a comment