【问题标题】:Massive Database w/ Fulltext Search - Sphinx, Lucene, Cassandra, MongoDB, CouchDB [closed]带全文搜索的海量数据库 - Sphinx、Lucene、Cassandra、MongoDB、CouchDB [关闭]
【发布时间】:2011-03-30 00:08:42
【问题描述】:

我们公司正在开展一个项目,该项目需要一个包含 30-50 百万行产品数据的数据库。这些行包含需要每秒同时搜索数千次的文本。此外,每次搜索需要不到一秒的时间来执行。

所以,总而言之,我们有一个 50M 行的数据库,需要每秒搜索数千次。请记住,这些是全文搜索。我知道 MySQL 或任何关系数据库单独无法处理这类工作。因此,我们正在寻找能够以您指定的价格为我们设计正确的设置并帮助我们实施的人。

首先,我们想知道我们最好的选择是什么。我个人一直在研究诸如 Sphinx、Lucene、Cassandra、MongoDB、CouchDB、Solr 等之类的东西,但真的不知道应该将哪个与另一个结合使用,以便为我们提供最有效的设置。

所以,如果有人能提供一些建议,或者接受我们的工作机会,我们将不胜感激。

您可以在这里通过 PM 与我联系,我会给您我的电子邮件/IM/电话号码以进一步讨论。

谢谢!

【问题讨论】:

    标签: mysql full-text-search mongodb couchdb cassandra


    【解决方案1】:

    保罗,欢迎来到 SO。这不是一个真正适合找人为你工作的地方,但这是我的建议:

    说实话,根据您正在执行的搜索类型,关闭 MySql 可能有点为时过早。

    由于它是产品数据,我想您的搜索是全文搜索,所以注销 MySql 并不为时过早。 Sphinx 很棒,但配置起来有点麻烦。好处是它可以直接从 mysql 索引,并且您还可以与您在应用程序中使用的任何 mysql 连接器/绑定与它进行交互,因为它知道如何与 mysql 的协议通信。

    我会说 cassandra、couch 和 mongo 并不是您真正需要的,它们都没有像 sphinx 那样原生索引文本。你可以在它们上面滚动你自己的,但这会适得其反。

    我从未使用过 lucene,但我听说过一些好东西,它与 Sphinx afaik 的解决方案类似。

    祝你好运

    【讨论】:

    • 您好,感谢您的回复!是的,我忘了提到它们是全文搜索。我排除 MySQL 的原因是表锁定。全文功能需要 myisam,它会锁定表,因此会损害我们每秒需要执行的数千个并发搜索。此外,全文搜索比其他替代方法慢。我希望将 MySQL 与 Sphinx 配对可以解决这两个问题,但我不太确定,这就是我在这里发帖的原因:) 再次感谢!
    【解决方案2】:

    存储数据和搜索是两件不同的事情。如果您查看像 ebay 这样的架构,它们具有用于搜索操作的单独服务和服务器。 50m 行不算什么,您可以将其存储在任何数据存储中,它们都不是完美的,所以区别在于用例。例如:cassandra 在任何数据大小下都具有最快的插入性能,可以轻松扩展到数百台机器的 PB(无需分片),具有lucandra(cassndra-lucene 集成,可以很好地处理海量数据,但与elasticsearch),持久性高,... MongoDB 有更多的查询选项(使用 btree 作为 dbms),最近有自动分片,可以索引所有字段,但持久性很差,... Postgresql 是目前最先进的开源 dbms,内置最近的主/从复制,可以通过分片、酸和 sql 兼容来扩展......在我认为的用例中,couchdb 与其他用例相比没有任何优势,它太慢了,如果我需要酸,我可能会使用 postgresql。这些数据存储的内置全文搜索功能存在一些问题并且不可扩展。

    最高级的(海量数据、高性能、简单、分布式、容错、rest api)开源搜索引擎是elasticsearch,你可以认为它是分布式lucene。与 Elasticsearch 相比,Solr 比较落后。使用原始 lucene/sphinx 是不可扩展的。

    如果我是你,我可能会选择其中一个数据存储并使用 elasticsearh 进行索引并在我的数据访问层上同步它们(需要在 db insert/update/delete 上修改索引)。

    问候

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2010-10-30
      • 2011-10-12
      • 2020-04-26
      • 2010-09-22
      • 2011-04-02
      • 2013-09-05
      • 2015-01-29
      • 1970-01-01
      相关资源
      最近更新 更多