【问题标题】:MongoDB integration with SolrMongoDB 与 Solr 的集成
【发布时间】:2014-10-27 22:43:02
【问题描述】:

我是 mongodb 及其与 Solr 集成的初学者。从不同的帖子中,我对集成步骤有所了解。但需要以下信息

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

  2. 如果我们需要定期更新 solr,那么在 Solr 以及 mongodb 中维护它会成为额外的开销。克服它的最佳方法。

【问题讨论】:

    标签: mongodb solr


    【解决方案1】:

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

    1. 对我来说,最好的方法是在可以修改应用程序并添加到持久层的情况下,您可以在“同一”时间在 MongoDB 和 Solr 中完成所有写入操作。像这样,您可以准确控制要发送到数据库的内容以及要为全文操作编制索引的内容。但正如我所说,这意味着您必须更改应用程序代码。 (无论如何,您都必须对其进行更改,以便在需要时能够查询 Solr)。是的,您必须第一次索引所有现有文档

    2. 您可以使用“连接器”方法,将 MongoDB 和 Solr 连接在一起,这可以通过多种方式完成。

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

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

    您的第 2 点是正确的,您必须管理两个集群并确保数据同步,并且有时会付出 Solr 索引与刚在 MongoDB 中更新的文档之间不一致的代价……所以您需要看看您的应用程序的最佳方法是单独使用 MongoDB 还是使用 MongoDB 和 Solr(请参阅下面的评论)

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

    【讨论】:

    • 感谢 Tug Grall 的详细回复。我们还在 mongo 中构建了文本搜索功能,它具有很好的索引功能,从更快的检索角度来看,它会接近 Solr 的检索性能吗?即使它很接近,我们也可以接受。基本上我们在 mongodb 索引 VS Solr 搜索结果上尝试一个小的 POC。
    • 是的,它应该是,但你可以猜到它取决于很多数据集本身,查询的类型......最好是真正测试。 (应该很容易,因为您已经有了数据并且知道您想要哪个查询) - 只是为了确保让我指出您的文档:docs.mongodb.org/manual/core/index-text
    【解决方案2】:

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

    有一个强大的 geo-api 并且对于全文搜索有http://docs.mongodb.org/manual/core/index-text/。因此,确定您的需求是否适合 MongoDB 或者您需要溢出到 SOLR 将是理想的。

    关于索引部分。如果您的数据更新一次?如果您可以承受不频繁的更新,那么每天一次重新索引的批处理作业可能对您有用。理想情况下,SOLR 适用于某种形式的主数据。

    【讨论】:

    • 1. 分布在多个分片的 TB 中的数据非常庞大。 2.数据更新有两种方式 a:在线 b:批量
    • 按照 Tug Grall 的建议尝试来自 lucidworks 的 Mongo 连接器可能会很有用。看起来它使用 oplog 提取数据,所以它可能是近乎实时的。这可能接近您想要的 - 并且可能值得一看。当然,最好的办法是您可以使用 Mongo 2.6+ 并使用文本搜索 API。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2012-09-01
    • 2014-07-17
    • 1970-01-01
    相关资源
    最近更新 更多