2010-05-04 32 views
2

如何讀取存儲在HDFS上的lucene索引目錄,即如何獲取存儲在HDFS上的索引的IndexReader。 IndexReader將在地圖任務中打開。打開存儲在hdfs中的lucene索引

是這樣的:的IndexReader讀者= IndexReader.open( 「HDFS /路徑/到/索引/目錄」);

感謝, AKHIL

回答

2

如果你想打開一個儲存在HDFS進行搜索的目的Lucene索引,你的運氣了。 AFAIK,沒有實現允許搜索操作的HDFS目錄。這種情況的一個原因是,HDFS針對大塊的連續讀取進行了優化,而Lucene所產生的不是隨機讀取的小數據。

在Nutch的項目中,有HDFSDirectory的實現,你可以用它來創建的IndexReader,但只能刪除操作的工作。 Nutch只使用HDFSDirectory來執行文件重複數據刪除。

+0

的確有一個目錄的實施http://hadoop.apache.org/common/docs/r0.18.3/api/org/apache/hadoop/contrib/index/lucene/FileSystemDirectory.html到開放Lucene的目錄進行一般的FS系統 – Akhil 2010-05-07 10:08:14

+0

但不幸的是我得到這個AbstractMethodError http://stackoverflow.com/questions/2763038/java-abstractmethoderror當我用IndexReader.open(新FileSystemDirectory(.....))。在map任務 – Akhil 2010-05-07 10:11:41

+0

沒有意識到FileSystemDirectory存在。但我會保持警惕。它似乎沒有被積極維護。 – bajafresh4life 2010-05-07 13:16:19

1

我認爲Katta項目可能是你正在尋找的。我自己並沒有使用它,但最近一直在研究這些解決方案,這似乎符合法案。

它採用分片索引Lucene的分佈式版本。

http://katta.sourceforge.net/

相關問題