如何读取存储在 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 分布式版本。