Solr - Enterprise search 的「黑盒子」

>> 2007/07/25

最近因為需要做 search,於是找了 Lucene 來看,順便寫了些簡單的 index、search 的 code 摸摸看感覺。用 Lucene 的理由很多,速度快、scalability 好都是原因之一,很多大站 (digg、livejournal、CNet、Joost) 都採用也是原因,但是最重要的理由則是我對商業環境使用 Open Source 軟體的哲學...

「要用 Open Source 的玩意兒,就要用 community 最大、最 active 的」。因為這樣,白老鼠才夠多,support 才夠廣,支援度也夠好。有地雷的話,會有人先替你踩過,有問題會有人先修好 XD

廢話說完了,該來說 Solr (發音同 Solar)。話說今天下午,寫一些簡單的 code 測試 Lucene,結果在翻 documents 的時候意外翻到 Solr。看了幾下子以後開始幹聲連連... (我怎麼不早點看到這玩意兒啊?) 看來 Solr 根本把所有站內搜尋應該做的事情做完了嘛。

簡單說,Solr 是完全把 Lucene 整個包起來,藏成一個搜尋的黑盒子。你不要管 Lucene 裡面怎麼做 Tokenizer、Analyzer (雖然如果想改也可以),而只需要透過 XML/HTTP 來跟 Solr 溝通即可。要新增文件去搜尋,就用 HTTP POST 塞資料給它。要做搜尋的時候,再另外做 HTTP GET 就好。非常符合 KISS 原則 (Keep It Simple, Stupid)。

雖然還沒進行壓力測試,不過 Solr 的底層是 Lucene,又是 CNet 的人寫出來的,看起來應該是還不錯用才對。

還是那句話,我怎麼摸 Lucene 好幾天以後才看到這種好東西呢...

7 comments:

Willy 2008年1月21日 上午11:20  

謝謝您的分享
我最近參加一個網站開發,也要做站內搜索
可以分享一下後來您實作solr的心得嗎

Unknown 2008年1月21日 中午12:06  

心得很簡單,就是搜尋用 solr 就對了 :p

我幾乎可以武斷的說,用其他 open source search engine solution 的人,如果沒有很好的理由不用 solr,那大概就是因為對 solr 沒研究才會如此。

solr 使用上應該是很簡單的,大部分人不會碰到什麼特別的問題。不知道你有想知道什麼其他的東西嗎?

Willy 2008年1月21日 中午12:43  

謝謝你的心得分享唷
我來試試看
有發生問題再來請教您唷!

Willy

yangliching 2009年1月9日 中午12:02  

請問有沒有遇到過 只查1個中文字的問題呢?

例如
查 "馬" 只出現 2筆
查 "馬英九" 出現 200筆

Unknown 2009年1月9日 中午12:11  

april, 這個問題應該是看妳 query 和 index 的中文斷詞是怎麼斷的... (使用什麼 tokenizer)

我是使用 solr.ChineseFilterFactory,沒有這個問題。

jeffhung 2009年9月25日 中午12:10  

請教一下,Solr有辦法scale up嗎?好比說架在10台電腦上一起做indexing,或一起提供query service?其index的資料,有辦法存在多台電腦裡嗎?

Unknown 2009年9月28日 晚上11:49  

學長太客氣了,也許學長想參考一下這個? http://wiki.apache.org/solr/CollectionDistribution

最新文章

最新回應

部落格貼紙

  © Free Blogger Templates Autumn Leaves by Ourblogtemplates.com 2008

Back to TOP