【问题标题】:advanced searching mongodb using mongomapper, sunspot/solr or sphinx?使用 mongomapper、sunspot/solr 或 sphinx 进行高级搜索 mongodb?
【发布时间】:2011-03-23 22:59:32
【问题描述】:

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

一切正常,我现在想在应用中添加搜索功能。

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

我一直在研究 sunspot gem,但在开发中设置它有困难,更不用说在生产中运行它了!我也看过狮身人面像。

但我想知道仅使用 mongomapper / mongodb 是否足够快并且是最好的方法,因为它是一个相当复杂的搜索系统?

对此的任何帮助/建议/经验/教程和示例将不胜感激。

非常感谢,

瑞克

【问题讨论】:

    标签: mongodb solr sphinx mongomapper sunspot


    【解决方案1】:

    我参与了一个由 Sphinx 驱动的大型搜索,我认为它糟糕。如果您想要通过非常简单的全文搜索获得任何内容,则很难配置。另一方面,Solr\Lucene 非常灵活,并且非常容易设置和运行。

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

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

    【讨论】:

    • 非常感谢您的建议。我在 dev 上运行了 solr,这很容易设置,但在生产中看起来很复杂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多