首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构建基于hadoop和lucene的分布式搜索

如何构建基于hadoop和lucene的分布式搜索
EN

Stack Overflow用户
提问于 2013-12-08 02:44:14
回答 1查看 719关注 0票数 1

我正准备使用lucence和hadoop制作分布式搜索模块,但我对以下内容感到困惑:

  1. 众所周知,hdfs是一个分布式文件系统,当我将一个文件放到hdfs中时,文件将被分成几个块,并存储在claster中的不同的从机中,但是如果我使用lucene在hdfs上编写索引,我希望看到每台机器上的索引,如何实现它?
  2. 我读过一些hadoop/cont肋骨/index和一些katta,但不理解“碎片,看起来像索引的一部分”的概念,它存储在一台计算机的本地磁盘上,还是集群中的一个定向分布?

谢谢你提前

EN

回答 1

Stack Overflow用户

发布于 2013-12-09 13:40:41

关于您的问题1:-As:

您可以实现Lucene "Directory“接口,使其与hadoop一起工作,并让hadoop处理提交给它的文件。您还可以提供自己的"IndexWriter“和"IndexReader”实现,并使用hadoop客户端编写和读取索引。这样,由于您可以对您将要编写的索引的格式有更多的控制。您可以通过lucene/hadoop实现“查看”或访问每台机器上的索引。

-For你的问题2:

碎片是索引的子集。在运行查询时,将同时处理所有碎片,并将对所有碎片进行索引搜索的结果组合在一起。在集群的每台机器上,您将拥有索引的一部分:一个碎片。因此,索引的一部分将存储在本地机器上,但在您看来,它是一个分布在集群中的单一文件。

我还可以建议您签出作为索引/搜索引擎在Lucene上运行的分布式搜索SolrCloud (即这里 ),并且已经允许您有一个聚集索引。它还提供了一个API,用于提交文件以索引和查询索引。也许它对您的用例来说已经足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20449265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档