我最近开始使用MongoDB和Apache Solr。我使用MongoDB作为数据存储,我希望Apache Solr为我的应用程序中的搜索功能创建数据索引。
经过一些研究后我发现,基本上有两种方法可以在MongoDB和Solr之间同步数据。
1)使用Solr DataImportHandler -
为此,我使用了由詹姆斯创建的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 Integration的好教程。
另外,我正在寻找MongoDB和solr之间的实时同步,即只要将任何产品添加到我的mongodb,我希望它在solr索引中更新并反映在搜索结果中。
我正在使用MongoDB 2.0.4和Solr 3.6.1。
答案 0 :(得分:2)
Hadoop是创建SOLR索引的选项。我没有做过这方面的第一手资料,但是已经听过such as etsy的人。
在this course的lucene革命中,他们讨论了使用hadoop来更新某些SOLR核心中的索引。不幸的是,我不认为课程材料是公开的。
在this talk,发言者谈到了mongo / hadoop的支持。
其他相关链接:
答案 1 :(得分:1)
您是否设置了副本设置模式? http://docs.mongodb.org/manual/reference/replica-configuration/
最初,虽然Solr中没有数据,但我得到的结果与您描述的相同。之后,我设置了复制模式,似乎创建了oplog文件,并且mongodbconnector正在与SOLR正确同步。对我来说非常好。
答案 2 :(得分:0)
考虑使用mongoConnector。查看http://blog.mongodb.org/post/29127828146/introducing-mongo-connector