2012-11-28 153 views
0

我正在尋找一個搜索項目來建立一個搜索引擎,搜索數以百萬計的文件,幫助需要什麼是已有的最好的方式來做同樣的,起點等。我也嘗試過ElasticSearch和Apache SOLR 10萬個文件,但他們所花的時間是秒(2-4秒)。什麼是搜索數百萬文件的最佳方式?

+0

您使用的是什麼硬件?在這種規模下,我認爲您可能需要相應地擴展您的基礎架構...... – ppeterka

+0

「需要相同快速解決方案的幫助。」我建議你以一種聽起來不專橫的方式來重述你的問題。 – SirDarius

+0

@SirDarius編輯相同。 – gauravmunjal

回答

2

對於數以百萬計的文件和一個體面快速全文檢索,你不會得到周圍使用像Term Document Matrix或其他種類的inverted indexing方法正確的搜索引擎。

我建議閱讀了全文搜索引擎的基礎知識,讓他最基本的想法,然後尋找一個好的圖書館,做你所需要的。 (如果你不準備投資一些嚴重的時候,我不會建議編寫自己的搜索引擎。)

推薦閱讀:

(不知道你需要這些指針,如果你已經知道這些東西,對你有好處;))


=>至於在使用什麼實際建議:我使用Apache's Lucene,一個全文檢索引擎庫爲Java取得了成功。它爲文檔索引,標記,詞幹,停用詞等提供了很大的幫助。它還使您能夠從邏輯上組合關鍵字(例如,搜索'foo',但只顯示不包含'bar'的文檔或'qux等)。

當時我索引了幾百萬份文檔,並能夠在很短的時間內獲得搜索結果,即沒有明顯的延遲。

0

獅身人面像(http://sphinxsearch.com/)是一個致力於全文檢索與一組接近Lucene的功能其它軟件,但它是與客戶端API和綁定幾種語言獨立的服務器。

一些高知名度的網站,如Craiglist上使用它作爲非常好的結果的搜索引擎,在網站上提到:

Craigslist.org,一個免費的分類廣告網站,被傳言圍繞火對斯芬克斯的250,000,000條查詢/天。相信與否,這是通過15個獅身人面像箱子完成的,在高峯時段只消耗其總容量的四分之一。

+1

爲什麼downvote?恐怕這看起來像是個人攻擊,因爲我的幾個答案在幾分鐘內就被低估了,這是因爲我向某人解釋他錯了。 – SirDarius

+0

我upvote你)) – gavenkoa

0

ElasticSearch建立在Lucene之上,主要關注引擎的「彈性」。如果每個文檔都不大,並且10M文檔可以放入內存中,那麼您可以考慮使用許多高級功能以毫秒爲單位支持搜索的高級解決方案,例如SRCH2。

相關問題