用于 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 - TikaEntityProcessor - BLOB导入