【发布时间】:2013-07-10 10:03:17
【问题描述】:
我有一个“大数据”文本搜索问题,我曾在 Stackexchange 网站上寻找一般建议 - https://softwareengineering.stackexchange.com/questions/203855/text-search-big-data-problem
对于这篇 SO 帖子,这里有一个特定的问题,即围绕 ElasticSearch 与 Hadoop 的集成(但我想我会提供一些背景知识)。
问题概述
基本上我有大量的文本,分成不同的“行”,每一行代表一个项目。我还有另一个较小的列表,其中包含此文本中的搜索词。我想交叉引用这两者并进行反向索引查找,并返回我找到的索引。
注意:我知道 20GB 不是海量数据,但本练习的次要目标是与大数据技术人员合作,为我们使用真正的大数据 (> TB) 项目奠定基础!
接近
我一直在研究 Lucene 搜索路线,但据我所知,这将导致以下方法:
- 使用 MapReduce 删除停用词和格式化文本等
- 生成 Lucene 索引(可能使用 MapReduce - 这是一种优化)
- 开发一个 C# 应用程序以与 Lucene(或 SolR)交互并进行搜索。
但对我来说,这仍然是连续的,即我将依赖搜索服务器的可扩展性来真正快速,但我仍然必须从我的列表顶部开始并逐步完成它,一个接一个。
我可以将原始列表拆分成块,然后在不同的服务器上运行我的 C# 应用程序,这将是一种方法。
具体问题
但我想知道是否可以使用 Hadoop Map Reduce 直接与 ElasticSearch 交互(我首选的 Lucene 路径)?我已经搜索(!)但找不到任何东西,除了将 Wonderdog 与 Pig 一起使用。很好 - 但我看不到 Pig UDF 和 ElasticSearch 的示例。
任何指针表示赞赏,非常欢迎代码示例!
邓肯
【问题讨论】:
-
是一次性交易还是您将来会有更多数据,或者数据或多或少是静态的,但会出现新类别,您需要根据旧数据检测它们?
标签: text hadoop lucene elasticsearch bigdata