solr mongoDB 对比

2019-03-27 01:14|来源: 网路

1 solr 字段是写死的

2 solr优势是大块文本模糊查询,mongoDB还支持正则查询以及类似js语法代码语句查询

3 mongoDB已经原生支持了局部更新,以及有个upsert,solr先查有就更新,没有就直接覆盖的

4 mongDB支持批量更新 4 mongDB工具较多,实时监控mongodstat,支持热备份、热恢复mongodump和mongorestore,还提供锁命令控制以及角色安全控制

    NoSql都是先写内存,后定时写磁盘,高效随机IO 1 宕机问题:日志记录,NRW网络内存备份

    bloom-filter算法,bigtable,或其开源版本Cassandra


转自:http://www.cnblogs.com/ai464068163/archive/2013/04/18/3028786

相关问答

更多
  • 1- When inserting an object in MongoDB, I then add it to Solr SolrServer server = getServer(); SolrInputDocument document = new SolrInputDocument(); document.addField("id", documentId); ... server.add(document); server.commit(); 2- When updating a property ...
  • MongoDB[1] 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的A ...
  • 1- When inserting an object in MongoDB, I then add it to Solr SolrServer server = getServer(); SolrInputDocument document = new SolrInputDocument(); document.addField("id", documentId); ... server.add(document); server.commit(); 2- When updating a property ...
  • MongoDB[1] 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的A ...
  • Solr(Lucene)使用算法从查询中返回相关文档。 它将返回一个分数以指示每个文档与查询有多相关。 它与数据库(不管是否有关系)做的不同,它返回的是匹配或不是查询的结果。 Solr (Lucene) uses an algorithm to returns relevant documents from a query. It will returns a score to indicate how relevant each document is related to the query. It i ...
  • 如果仅查询Solr是有意义的,那就这样做。 如果查询Solr某些数据是有意义的,那就这样做吧。 这取决于您的使用案例,但如果可以使用Solr中的数据回答任何查询,那么将它用于所有内容就完全没问题了。 这可能会更有效地使用您的缓存。 不,不是我所知道的。 不是真的。 Solr不太适合嵌套的JSON(即使你有父/子文档,它也是你必须在每种情况下手动处理的东西,并且需要特殊的套管)。 在这些情况下,您可以使用Solr进行查询,返回ID,然后从mongo中检索实际文档,其JSON结构完好无损。 在这种情况下,您可以 ...
  • 这是一个很好的问题,我已经深思熟虑了一些。 我将总结我的经验教训: 几乎所有情况下,您可以轻松地使用Lucene / Solr代替MongoDB,但反之亦然。 格兰特·英格索尔的帖子总结在这里。 MongoDB等似乎是一个不需要搜索和/或刻面的目的。 对于RDBMS世界的程序员来说,这似乎是一个更简单和可以说更容易的过渡。 除非有人习惯了Lucene&Solr有更陡峭的学习曲线。 没有很多使用Lucene / Solr作为数据存储的例子,但是Guardian已经取得了一些进展,并将其概括为一个很好的滑盖 , ...
  • 当然,理想的解决方案(从Solr的角度来看)是将数据存储在非正规化形式的Solr中。 但是,如果这不是一个可行的选项,您可以查看Join查询分析器。 https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-JoinQueryParser 你将按照(未测试)的方式执行查询: q={!join from=department to=departmentName}lastName:David AND departmen ...
  • 你打算如何搜索? 当您在页面上获得10个结果时,这些结果之一是什么? 在大多数情况下,这应该是您的Solr文档。 Solr不是用于保存数据结构的数据库。 Solr希望您修改,组合,拆分和非规范化数据结构,以便您快速查找信息。 如果您不是按ID搜索partes ,则可能甚至不需要保留它。 如果你这样做,你期望什么回来? 您是将多个ID映射到同一个对象还是不同的对象? 这些是您首先要回答的问题。 至于嵌套结构支持,Solr 确实支持父文档和子文档 ,但模式是来自一个和另一个的字段的组合超集。 How are y ...
  • 正如在这个SO中所写的那样,Solr的Schemaless模式可以帮助你 Solr支持Schemaless模式 。 以这种方式启动Solr时,您最初并未绑定到架构。 当您向Solr提供第一个文档时,它将猜测相应的字段类型并生成包含这些字段类型的模式。 然后修复这些字段。 您仍然可以通过这种方式添加新字段。 你还需要做的是从你的mongodb到Solr创建某种导入路线。 谷歌搜索后,你可能会偶然发现SO问题 - MongoDB的solr数据导入处理程序 - 这也可能对你有帮助。 可能更简单的是创建一个mong ...