当前位置:  开发笔记 > 后端 > 正文

具有全文搜索的海量数据库 - Sphinx,Lucene,Cassandra,MongoDB,CouchDB

如何解决《具有全文搜索的海量数据库-Sphinx,Lucene,Cassandra,MongoDB,CouchDB》经验,为你挑选了1个好方法。

我们公司正在开发一个项目,该项目需要一个拥有3000万至5000万行产品数据的数据库.这些行包含需要每秒数千次搜索的文本.而且,每次搜索都需要不到一秒的时间来执行.

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

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

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

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

谢谢!



1> sirmak..:

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

最广泛的(海量数据,高性能,简单,分布式,容错,休息api)开源搜索引擎是弹性搜索,你可以把它想象成分布式lucene.与elascticsearch相比,Solr是一种传统.使用原始lucene/sphinx是不可扩展的.

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

问候

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有