2011-03-23 62 views
3

我有mongodb與mongomapper存儲我所有的產品。每個產品都屬於多個類別,分別有多個級別,即類別,子類別等。 每個產品都有許多搜索字段,這些字段是產品中嵌入的文檔。使用mongomapper,sunspot/solr或sphinx高級搜索mongodb?

所有這些工作,我現在想要添加搜索應用程序。

搜索系統需要文本搜索:多個動態分面搜索,包括最小/最大範圍搜索。

我一直在尋找黑子寶石,但有困難的設置在開發上,更不用說試圖在生產中運行它!我也看過獅身人面像。

但我想知道是否使用只是mongomapper/mongodb將是足夠快,最好的方式,因爲它相當複雜的搜索系統?

任何幫助/建議/經驗/教程和這方面的例子將不勝感激。

非常感謝,

裏克

回答

1

我已經參與了一個非常大的獅身人面像肉搜索,我認爲它可怕。如果您想通過非常簡單的全文搜索進行任何操作,則配置非常困難。另一方面,Solr \ Lucene非常靈活,令人難以置信地更容易設置和運行。

我並沒有將Solr與MongoDB結合使用來爲全文搜索提供所有額外的好東西,如方面等。根據您配置Solr的方式,您甚至可能不需要爲MongoDB提供數據。或者,您可以告訴Solr索引字段,但不要存儲它們,而是隻存儲與MongoDB中的數據對應的ObjectId。

如果您的搜索真的是一個複雜的搜索系統,我強烈建議您不要使用MongoDB進行搜索並使用Solr。一個重要的原因是MongoDb沒有全文功能 - 相反,它具有正則表達式匹配。正則表達式匹配奇妙,但只會在某些情況下使用索引。

+0

非常感謝您的建議。我有solr在dev上運行,這很容易設置,但在生產上看起來很複雜。 – rick 2011-03-24 09:28:39