2

我可以使用 MapReduce 框架创建索引并以某种方式将其添加到分布式 Solr 中吗?

我有大量信息(日志文件和文档),这些信息将通过互联网传输并存储在我的数据中心(或亚马逊)中。它需要被我们复制的 Solr 安装解析、索引和最终搜索。

这是我提出的架构:

  • 使用 MapReduce 框架(Cloudera、Hadoop、Nutch,甚至DryadLinq)来准备这些文档以进行索引
  • 将这些文档索引为 Lucene.NET / Lucene (java) 兼容的文件格式
  • 将该文件部署到我的所有 Solr 实例
  • 激活该复制索引

如果以上是可能的,我需要选择一个 MapReduce 框架。由于 Cloudera 是供应商支持的,并且有大量未包含在 Hadoop 安装中的补丁,我认为它可能值得一看。

一旦我选择了 MatpReduce 框架,我需要对文档(PDF、DOCx、DOC、OLE 等)进行标记,对它们进行索引,将索引复制到我的 Solr 实例中,并以某种方式“激活”它们以便它们可以在正在运行的实例。我相信这种方法比通过 REST 接口向 Solr 提交文档更好。

我将 .NET 引入图片的原因是因为我们主要是一家 .NET 商店。我们将拥有的唯一 Unix/Java 是 Solr,并且有一个通过 Solrnet 利用 REST 接口的前端。

根据您的经验,这种架构看起来如何?你看到任何问题/问题吗?你能给出什么建议?

应该怎么做才能失去分面搜索?在阅读了 Nutch 文档后,我相信它说它不做 faceting,但我可能没有足够的软件背景来理解它在说什么。

4

2 回答 2

3

一般来说,您所描述的几乎正是 Nutch 的工作方式。Nutch 是一个基于 Hadoop 核心的抓取、索引、索引合并和查询回答工具包。

您不应该混合使用 Cloudera、Hadoop、Nutch 和 Lucene。您很可能最终会使用所有这些:

  • Nutch是索引/应答(如 Solr)机器的名称。
  • Nutch 本身使用Hadoop集群运行(大量使用它自己的分布式文件系统 HDFS)
  • Nutch 使用Lucene格式的索引
  • Nutch 包含一个查询回答前端,您可以使用它,或者您可以附加一个Solr前端并从那里使用 Lucene 索引。
  • 最后,Cloudera Hadoop 发行版(或 CDH)只是一个 Hadoop 发行版,其中应用了几十个补丁,以使其更加稳定并从开发分支向后移植一些有用的功能。是的,你很可能想要使用它,除非你有理由不使用它(例如,如果你想要一个前沿的 Hadoop 0.22 主干)。

一般来说,如果您只是在寻找现成的爬虫/搜索引擎解决方案,那么 Nutch 是一个不错的选择。Nutch 已经包含许多插件来解析和索引各种疯狂类型的文档,包括 MS Word 文档、PDF 等。

我个人认为在这里使用 .NET 技术没有多大意义,但如果您觉得舒服,您可以在 .NET 中做前端。但是,对于以 Windows 为中心的团队来说,使用 Unix 技术可能会感到相当尴尬,所以如果我管理这样一个项目,我会考虑替代方案,特别是如果你的爬网和索引任务有限(即你不想出于某种目的爬取整个互联网)。

于 2010-11-22T22:32:09.330 回答
0

你看过 Lucandra https://github.com/tjake/Lucandra一个基于 Cassandra 的 Lucense/Solr 后端,你可以使用 Hadoop 用你的数据索引填充 Cassandra 存储。

于 2010-12-04T01:10:48.287 回答