【发布时间】:2011-02-15 07:51:19
【问题描述】:
如何读取存储在 HDFS 上的 lucene 索引目录,即如何为存储在 HDFS 上的索引获取 IndexReader。 IndexReader 是在地图任务中打开的。
类似:IndexReader reader = IndexReader.open("hdfs/path/to/index/directory");
谢谢, 阿基尔
【问题讨论】:
如何读取存储在 HDFS 上的 lucene 索引目录,即如何为存储在 HDFS 上的索引获取 IndexReader。 IndexReader 是在地图任务中打开的。
类似:IndexReader reader = IndexReader.open("hdfs/path/to/index/directory");
谢谢, 阿基尔
【问题讨论】:
如果您想打开一个存储在 HDFS 中的 Lucene 索引以进行搜索,那么您就不走运了。 AFAIK,没有实现允许搜索操作的 HDFS 目录。出现这种情况的一个原因是 HDFS 针对大块的顺序读取进行了优化,而不是 Lucene 导致的小块随机读取。
在 Nutch 项目中,有一个 HDFSDirectory 的实现,您可以使用它来创建一个 IndexReader,但只能进行删除操作。 Nutch 仅使用 HDFSDirectory 进行文档去重。
【讨论】:
我认为 Katta 项目可能正是您想要的。我自己没有使用过,但最近一直在研究这类解决方案,这似乎符合要求。
这是一个使用分片索引的分布式版本的 lucene。
【讨论】: