用于 MongoDB 的 solr 数据导入处理程序

Posted

技术标签:

【中文标题】用于 MongoDB 的 solr 数据导入处理程序【英文标题】:solr Data Import Handlers for MongoDB 【发布时间】:2012-03-09 20:40:16 【问题描述】:

我正在做一个项目,我们在 MongoDB 数据库中存储了数百万个条目,我想使用 SOLR 索引所有这些数据。

经过大量搜索后,我发现 mongoDB 数据库没有合适的“数据导入处理程序”。

谁能告诉我在 MongoDB 中使用 SOLR 索引数据的正确方法是什么?

我想使用 SOLR 的所有功能,并希望它能够实时扩展。我从不同的帖子中看到了一种或两种方法,但不确定它们将如何实时工作..

非常感谢

【问题讨论】:

【参考方案1】:

10Gen 引入 Mongodb 连接器。您可以使用此工具将 Mongodb 与 Solr 集成。

博文:Introducing Mongo Connector

Github 页面:mongo-connector

【讨论】:

【参考方案2】:

我创建了一个插件,允许您使用 Solr 数据导入处理程序从 MongoDb 加载数据。

查看:

https://github.com/james75/SolrMongoImporter

【讨论】:

谢谢..我下次试试【参考方案3】:

我为类似的问题写了response,除了它是如何将数据从 mysql 导入 SOLR。示例代码是用 php 编写的,但应该会给您一个大致的概念。您需要做的就是设置一个迭代器来逐步遍历您的 MongoDB 资产,将数据提取为 SOLR 数据类型,然后将其保存到您的 SOLR 索引中。

如果你希望它是实时的,你可以在保存机制中添加一些自定义代码(假设这可以用 MongoDB 完成),并直接保存到 SOLR 索引,然后运行一个提交脚本来提交数据15 分钟(通过 cron)。

【讨论】:

感谢您的回复。当我和我的室友交谈时提出的另一个有趣的问题是,在 mongoDB 中索引数据的最佳方法是什么,是使用 mongoDB 索引器还是 Solr 索引器,这将更有效。我们希望分面搜索和所有其他 .您对此有何看法? MongoDB 是一种 NoSQL 解决方案 (afaik),这意味着它非常适合存储书籍描述等数据。而且,MongoDB 是一个持久存储,而 SOLR(包装 lucene)是一个搜索引擎。我会同时使用它们,MongoDB 用于持久存储,SOLR 用于文本搜索。 谢谢,我不会使用全文搜索,因为我在数据库中存在的数据更像元数据,(例如:对于书名的关键字搜索,它会给出搜索结果书描述、图片、作者​​姓名、提供这本书的商店),但我需要分面搜索才能在网页中显示信息。您认为我应该使用 mongoDB 进行索引,将 solr 用于分面搜索还是 solr 用于索引和分面搜索?谢谢 当你说“数据库”时,你的意思是mongodb?是的 SOLR 可以做构面,但是当用户点击进入和退出构面搜索时,你必须编写你的应用程序来“向下钻取”和“向上钻取”。 是的,我的意思是 mongodb .. 感谢您的所有回答,它们非常有帮助 :)

以上是关于用于 MongoDB 的 solr 数据导入处理程序的主要内容,如果未能解决你的问题,请参考以下文章

solr 数据导入处理程序 jndi websphere

Solr-3

SOLR - TikaEntityProcessor - BLOB导入

xml 使用数据导入处理程序在Solr中导入/索引数据库(MySQL或SQL Server)

将 ObjectID 作为字符串导入

搜索引擎系列十:Solr(solrj 索引API 结构化数据导入)