我最近开始使用 MongoDB 和 Apache Solr。我使用 MongoDB 作为数据存储,我希望 Apache Solr 为我的数据创建索引,以便在我的应用程序中使用搜索功能。
经过一番研究,我发现基本上有两种方法可以在 MongoDB 和 Solr 之间同步数据。
1) 使用 Solr DataImportHandler -
为此,我使用了 james 创建的 SolrMongoImporter,并按照他在 github 上的教程进行操作。
我能够成功运行 Import Handler,Solr 识别了 ImportHandler,但它没有将任何文档导入 solr。每次都说更新文档=0。
2) 然后我尝试切换到 MongoDB 端,看看那里是否存在任何东西,我发现 MongoDBConnector由 10gen 提供。
当我按照说明运行连接器时,它正在尝试将大量文档发布到 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 索引中更新并反射(reflect)在搜索结果中。
我正在使用 MongoDB 2.0.4 和 Solr 3.6.1。
最佳答案
Hadoop 是创建 SOLR 索引的一个选项。我没有亲 body 验过,但从人们那里听说过such as etsy谁是。
开启 this course在 lucene 革命中,他们谈到了使用 hadoop 更新某些 SOLR 内核中的索引。不幸的是,我不认为类(class) Material 是公开的。
在 this talk演讲者谈到了对 mongo/hadoop 的支持。
其他相关链接:
关于java - 在 MongoDB 和 Apache Solr 之间同步数据的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542564/