MongoDB与Solr的集成

时间:2014-09-03 12:21:15

标签: mongodb solr

我初学mongodb及其与Solr的整合。我从不同的帖子中了解了集成步骤。但需要以下信息

  1. 我有mongodb中的数据,为了更快的检索,我们将它与Solr集成。 Solr索引所有mongodb条目。这是在集成后索引一次性活动还是我们需要定期更新Solr以索引在集成后插入的条目?

  2. 如果我们需要定期更新solr,那么将它与mongodb一起保存在Solr中会成为额外的开销。克服它的最佳方法。

2 个答案:

答案 0 :(得分:10)

据我所知,你没有官方(支持/完整)解决方案来整合MongoDB和Solr,但是让我给你一些想法/方向。

  1. 对我来说,最好的方法是可以修改应用程序并向持久层添加一个事实,即你在MongoDB和Solr中完成了所有的写入操作,并且#34;相同的"时间。与此类似,您可以准确控制要发送到数据库的内容以及要为全文操作编制索引的内容。但正如我所说,这意味着您必须更改您的应用程序代码。 (无论如何,您将更改它以便在需要时查询Solr)。是的,你必须第一次索引所有现有文件

  2. 您可以使用"连接器" MongoDB和Solr连接在一起的方法,这可以通过各种方式完成。

    您可以使用例如此处提供的MongoDB Connector:https://github.com/10gen-labs/mongo-connector

    LucrWorks,Solr背后的公司也有一个MongoDB的连接器,在此记录:http://docs.lucidworks.com/display/help/Create+a+New+MongoDB+Data+Source#(我没有用它,所以不能评论,但它也是一种方法)

  3. 你指出#2是真的,你必须管理两个集群并确保数据是同步的,有时需要支付Solr索引和刚刚在MongoDB中更新的文档之间的不一致的代价...所以你需要看看你的应用程序的最佳方法是单独使用MongoDB还是使用Solr的MongoDB(参见下面的评论)

    除了这个答案之外,还有一个小评论: 您正在谈论"更快的检索",不确定它应该是什么原因,如果您在MongoDB中使用正确的索引编写正确的查询,您应该能够在没有Solr的情况下执行此操作。如果你的要求真正面向solr意义的力量:全文索引(所有相关功能都有意义)

答案 1 :(得分:1)

您的数据有多大? MongoDB有一些很好的索引机制。

有一个强大的geo-api,全文搜索有http://docs.mongodb.org/manual/core/index-text/。因此,理想的做法是确定您的需求是否符合MongoDB,或者您需要将其扩展到SOLR。

关于索引部分。您的数据更新频率如何?如果您能够负担不频繁的更新,那么每天一次重新编制索引的批处理作业可能对您有用。理想情况下,SOLR可以很好地处理某种形式的主数据。