7

我最近开始使用 MongoDB 和 Apache Solr。我正在使用 MongoDB 作为数据存储,并且我希望 Apache Solr 为我的数据创建索引以用于我的应用程序中的搜索功能。

经过一番研究,我发现,基本上有两种方法可以在 MongoDB 和 Solr 之间同步数据。

1)使用 Solr DataImportHandler -

为此,我使用了 james 创建的 SolrMongoImporter,并按照他在github上的教程进行操作

我能够成功运行 Import Handler,Solr 识别了 ImportHandler,但它没有将任何文档导入 solr。每次它说更新的文档=0。

2)然后我尝试切换到MongoDB端,看看那里是否存在任何东西,我发现 了10gen提供的MongoDBConnector

当我按照说明运行连接器时,它正在尝试将大量文档发布到 Solr,并提供以下输出。

2012-11-24 15:15:20,665 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.010 seconds.
2012-11-24 15:15:21,674 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.009 seconds.
2012-11-24 15:15:22,683 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.008 seconds.
2012-11-24 15:15:23,694 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.010 seconds.
2012-11-24 15:15:24,702 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.008 seconds.
2012-11-24 15:15:25,711 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.008 seconds.
2012-11-24 15:15:26,722 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.010 seconds.

但是 Solr 中没有数据。

我想知道哪种方法对你们有用,有没有关于 MongoDB 和 Solr 集成的好教程。

此外,我正在寻找 MongoDB 和 solr 之间的实时同步,即,只要将任何产品添加到我的 mongodb,我希望它在 solr 索引中更新并反映在搜索结果中。

我正在使用 MongoDB 2.0.4 和 Solr 3.6.1。

4

3 回答 3

2

Hadoop 是创建 SOLR 索引的一个选项。我还没有亲身体验过,但从etsy 等人那里听说过。

在lucene 革命的这门课程中,他们谈到了使用 hadoop 更新某些 SOLR 内核中的索引。不幸的是,我不认为课程材料是公开的。

这次演讲中,演讲者谈到了对 mongo/hadoop 的支持。

其他相关链接:

于 2012-11-24T16:40:46.023 回答
1

你设置了副本集模式吗?http://docs.mongodb.org/manual/reference/replica-configuration/

一开始,尽管 Solr 中没有数据,但我得到的输出与您描述的相同。之后,我设置了复制模式,似乎创建了 oplog 文件并且 mongodbconnector 与 SOLR 正确同步。对我来说效果很好。

于 2013-05-25T12:28:30.327 回答
0

考虑使用 mongoConnector。查看http://blog.mongodb.org/post/29127828146/introducing-mongo-connector

于 2014-02-17T16:16:36.683 回答