我正准备使用lucence和hadoop制作分布式搜索模块,但我对以下内容感到困惑:
谢谢你提前
发布于 2013-12-09 13:40:41
关于您的问题1:-As:
您可以实现Lucene "Directory“接口,使其与hadoop一起工作,并让hadoop处理提交给它的文件。您还可以提供自己的"IndexWriter“和"IndexReader”实现,并使用hadoop客户端编写和读取索引。这样,由于您可以对您将要编写的索引的格式有更多的控制。您可以通过lucene/hadoop实现“查看”或访问每台机器上的索引。
-For你的问题2:
碎片是索引的子集。在运行查询时,将同时处理所有碎片,并将对所有碎片进行索引搜索的结果组合在一起。在集群的每台机器上,您将拥有索引的一部分:一个碎片。因此,索引的一部分将存储在本地机器上,但在您看来,它是一个分布在集群中的单一文件。
我还可以建议您签出作为索引/搜索引擎在Lucene上运行的分布式搜索SolrCloud (即这里 ),并且已经允许您有一个聚集索引。它还提供了一个API,用于提交文件以索引和查询索引。也许它对您的用例来说已经足够了。
https://stackoverflow.com/questions/20449265
复制相似问题