如何在Solr中使用mongoDB?

7

是否可以将数据从mongoDB复制到Solr?我正在使用ruby + sinatra + mongoid。或者我需要通过rsolr进行after_create、after_update等钩子来实现?


这个回答另一个NoSQL全文搜索问题可能是相关的:https://dev59.com/W2035IYBdhLWcg3wYe8F#5453940 - Chris Fulstow
4个回答

12

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>

增量导入被支持吗? - rnjai

2
有些人将Solr与MongoDB集成,并使用应用程序代码监听MongoDB的“oplog”。我建议完全将其与MongoDB解耦,并在应用程序上实现一些东西。如果您的应用程序将某些内容插入MongoDB,则触发对Solr的插入等操作。
“Tailable Cursors”可能是一个选项。

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

但它们只适用于已封顶的集合。

Oplog本身也是一个被限制大小的集合,因此可以进行尾随查询。在Java驱动程序的源代码中有一些读取oplog的示例,这些示例可用于启动Solr插件。 - Brendan W. McAdams

1

使用在https://github.com/erh/mongo-jdbc找到的JDBC驱动程序配置数据导入处理程序的JDBC风格--它支持选择、插入、更新和删除。希望这可以帮助到您!


很不幸,这个 Git 项目在过去的四年里没有提交。是否有类似的、实际的项目或替代方法(而 mongo-connector 不是一个替代方案)? - The Bndr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接