使用mongomapper,sunspot / solr或sphinx进行高级搜索mongodb?

时间:2011-03-23 22:59:32

标签: mongodb solr sphinx mongomapper sunspot

我正在使用mongodb和mongomapper来存储我的所有产品。每个产品属于多个类别,具有多个级别,即类别,子类别等。 每个产品都有许多搜索字段,这些字段是产品中嵌入的文档。

所有这些都有效,我现在想要将搜索添加到应用程序。

搜索系统需要文本搜索:多个动态分面搜索,包括最小/最大范围搜索。

我一直在研究太阳黑子宝石,但很难在dev上设置它,更不用说试图在生产中运行它了!而且我也看过狮身人面像。

但是我想知道使用mongomapper / mongodb是否足够快和最好的方式,因为它是一个非常复杂的搜索系统?

非常感谢任何帮助/建议/经验/教程和示例。

非常感谢,

瑞克

1 个答案:

答案 0 :(得分:1)

我参与了一个非常大的Sphinx搜索,我认为它的糟糕。如果您想要通过非常简单的全文搜索,那么很难配置。另一方面,Solr \ Lucene非常灵活,设置和运行都简单得令人难以置信。

我没有将Solr与MongoDB结合使用来支持全文搜索以及所有额外的好处,比如facet等。根据您配置Solr的方式,您可能不需要甚至点击MongoDB获取数据。或者,您可以告诉Solr索引字段,但不要存储它们,而只是存储与MongoDB内部数据相对应的ObjectId。

如果您的搜索确实是一个复杂的搜索系统,我强烈建议您不要使用MongoDB进行搜索并使用Solr。一个重要原因是MongoDb没有全文功能 - 相反,它具有正则表达式匹配。正则表达式匹配工作非常好,但在某些情况下只会使用索引。