Cassandra还是SOLR?什么为最终读取查询提供了更好的性能?

cod*_*ark 13 lucene indexing solr cassandra solandra

我的团队让我在Cassandra和SOLR之间做出选择,以便更快地回复@ frond结束查询.我告诉他们,Cassandra是NOSQL db的东西,而SOLR是索引的东西.但后来他们说我们可以将完整的数据库推送到SOLR(就像使用SOLR作为数据库),或者我们可以使用Cassandra和SOLR.一切困惑.

我们处理的数据量大约是10亿分布在4个MySQL表(使用连接获取),我们只从网站上读取查询.我们不需要全文搜索

我认为SOLR不容易被击败的是它的全文搜索功能,但是我们在我们的情况下不需要它.

那么SOLR还有哪些Cassandra无法提供的内容以及Cassandra在特定情况下可以取代SOLR的内容呢?

换句话说,谁会表现得更好?卡桑德拉一个人?SOLR作为一个单独的数据库?或者两者在一起?最重要的是为什么以及为什么不呢?

对我来说,以强有力的观点来支持我的选择非常重要,好像为什么在我的下一次团队会议期间为什么一个比其他人好.

并提前感谢.

编辑:

  • SOLANDRA不是一个选择,因为它不是那么成熟,我想不再保持
  • DataStax不是一个选项,因为SOLR功能仅在Enterprise Edition中提供

Tyl*_*bbs 6

如果您不需要Solr的全文搜索功能,我认为没有理由在Cassandra上选择它.

(披露:我为DataStax工作.)

在操作上,由于基于Dynamo的架构,处理Cassandra集群将更加简单.Sharding Solr可能非常痛苦,这也是我们DataStax在DSE中构建搜索的重要原因之一.这是许多人想要避免的事情.我不是想把你卖给DSE,只是指出Solr的缺点.

例如,当您想要使用Solr更改分片数时,您必须创建并构建一个全新的索引.你必须担心Solr集群的死锁.还有其他一些限制:http://wiki.apache.org/solr/DistributedSearch

您还没有多说您需要支持哪种类型的查询.添加该信息可以获得更好的答案.


小智 5

  • Cassandra 是一个 NoSQL 数据存储,旨在处理大量数据。万亿字节及以上。毫无疑问,它是为执行而设计的。
  • 请记住,NoSQL DB 或数据存储在查询方面的功能有限。他们不会有 JOIN 查询。因为这会杀死一个系统。想一想吧!
  • 您肯定能够非常快地读/写并且可以查询一些数据。
  • 灵活的模式,您可以将稀疏数据推入其中。也就是说,在一般数据库中,您将 NULL 推入空条目,在这里您根本不推它:) 您不需要!
  • 没有全文搜索。

这就是“大但是”的用武之地。

  • 上面说了,另一端的SOLR是TF-IDF全文搜索引擎。尽管您可以将它用于您的数据库。
  • 灵活的架构。只需标记不需要的字段即可。
  • Solr 将有助于快速标记、解析和索引数据。将会有极好的反响。它返回 XML,您可以解析 XML 以创建可表示的数据。
  • 读取查询速度很快,我的意思是非常快。但我没有 Cassandra 和 SOLR 之间的比较可以分享。

最后,因为您希望 CASSANDRA 和 SOLR 在一起。查看SOLANDRA(前卢坎德拉)

  • Solr [允许](http://wiki.apache.org/solr/SchemaXml#Dynamic_fields) 实现灵活的模式。 (2认同)