NoSQL(MongoDB)vs Lucene(或Solr)作为数据库
随着NoSQL运动基于文档的数据库的增长,我最近看了MongoDB。我注意到一个明显的相似之处,如何将项目视为“文档”,就像Lucene(和Solr的用户)。
所以,问题:为什么要使用NoSQL(MongoDB,Cassandra,CouchDB等)在Lucene(或Solr)作为你的“数据库”? 我在(和我相信其他人)在寻找答案是一些深入潜水比较他们。让我们一起跳过关系数据库讨论,因为它们服务于不同的目的。 Lucene提供了一些严重的优势,如强大的搜索和体重系统。更不用说Solr中的方面(Solr正在被整合到Lucene,很快,yay!)。您可以使用Lucene文档来存储ID,并像MongoDB一样访问文档。将它与Solr混合,现在您可以获得基于WebService的负载平衡解决方案。 你甚至可以在谈论类似的数据存储和MongoDB的可伸缩性时,抛出一个外部的缓存提供程序比如Velocity或MemCached。 MongoDB的限制使我想起使用MemCached,但我可以使用Microsoft的Velocity和更多的分组和列表收集力量超过MongoDB(我认为)。不能比在内存中缓存数据更快或可伸缩。即使Lucene有一个内存提供程序。 MongoDB(和其他人)确实有一些优点,如易于使用他们的API。新建文档,创建ID并存储它。完成。尼斯和容易。
这是一个很好的问题,我已经思考了很多。我将总结我的经验教训:
>你可以很容易地使用Lucene / Solr代替MongoDB几乎所有的情况,但不是反之亦然。格兰特Ingersoll的post sums it up here. 摘要:如果你没有搜索要求,Mongo提供一个简单的&强大的方法。然而,如果搜索是你的产品的关键,你可能更喜欢坚持一个技术(Solr / Lucene)和优化它的外观 – 更少的移动部件。 我2美分,希望有帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |