如何在Solr中使用mongoDB?

时间:2011-04-14 06:51:26

标签: mongodb solr mongoid

是否可以将数据从mongoDB复制到Solr?我正在使用ruby + sinatra + mongoid。或者我需要通过rsolr与after_create,after_update等挂钩?

4 个答案:

答案 0 :(得分:12)

10gen引入了Mongo Connector,它允许将数据推送到Solr(以及其他)

http://blog.mongodb.org/post/29127828146/introducing-mongo-connector

从他们的例子:

python mongo_connector.py -m localhost:27217 -t http://localhost:8080/solr

答案 1 :(得分:2)

有些人将Solr与MongoDB集成在一起,应用程序代码监听MongoDB的“oplog”。我建议在与MongoDB完全分离的应用程序上实现一些东西。如果你的应用程序在MongoDB中插入了一些内容,那么就会触发插入到Solr等中。

Tailabled游标可能是一个选项

http://jwage.com/2011/03/16/mongodb-tailable-cursors/

但它们只适用于上限集合。

答案 2 :(得分:2)

我不确定是否为时已晚。 mongo-jdbc不适用于Apache Solr的DIH,你需要扩展它。我已将其扩展,您可以在此处使用它:https://github.com/hrishik/solr-mongodb-dih

您可以直接将其与Apache Solr一起使用。在这种情况下,DIH配置文件将如下所示:

<dataConfig>    
    <dataSource name="mongod" type="JdbcDataSource" driver="com.mongodb.jdbc.MongoDriver" url="mongodb://localhost/exampledb"/>
    <document>
    <entity name="nameage" dataSource="mongod" query="select name, price from grocery">
        <field column="name" name="name"/>
        <field column="name" name="id"/> 
        <!-- other fileds -->
    </entity>
    </document> 
</dataConfig>

答案 3 :(得分:1)

使用https://github.com/erh/mongo-jdbc中的JDBC驱动程序配置数据导入处理程序的JDBC风格 - 它支持select,insert,update和drop。希望这有帮助!