我正嘗試從一個語料庫中構建一個鄰接列表。我正在考慮使用Map-Reduce,因爲內存中的解決方案已經證明是非常昂貴的。我認爲可以工作的一系列作業要求我首先製作一個倒排索引,然後製作一個作爲輸入並計算相似度的地圖作業。我並不是特別想經歷構建自己的倒排索引的痛苦 - 我想使用一個Lucene索引,這個索引似乎很容易生成。然而,我並不清楚如何使用Lucene索引並生成Hadoop中的Map可以使用的對。有人可以澄清一個人如何去做這件事嗎?使用Lucene索引作爲Hadoop的輸入
2
A
回答
1
您需要做的是使用IndexReader.terms()
來枚舉條款,IndexReader.docFreq(Term t)
以獲取包含該術語(用於IDF)的文檔數量,並使用IndexReader.termDocs(Term t)
獲取每個術語文檔對的DF值。使用這些信息,您應該能夠將數據提供給Mapper,然後進行計數。請注意,termDocs
調用通過其內部整數表示文檔,所以在進行此計算時不能修改索引,因爲索引更改後無法將文檔編號映射回文檔。爲了避免這種情況發生,要麼在處理減少步驟的結果之前不要更改索引,要麼在擁有文檔編號後,通過從文檔中讀取相應的字段將其轉換爲外部標識,並將其提供給Mapper。
相關問題
- 1. 使用hadoop作業的輸出作爲另一個的輸入
- 2. 使用Lucene的Sitecore索引
- 3. 使用Hadoop索引
- 4. 使用lucene操作Solr索引
- 5. 使用Katta(Lucene,Hadoop)
- 6. 的Apache Lucene索引作家
- 7. 使用Lucene爲Symfony索引PDF文件
- 8. 同時寫入Lucene索引
- 9. 關於gz文件作爲hadoop mapreduce作業輸入的輸入
- 10. 如何讀取Hadoop Sequentil文件作爲Hadoop作業的輸入?
- 11. 搜索Lucene索引
- 12. 搜索Lucene索引
- 13. Lucene索引搜索
- 14. 僅將Lucene用作倒排索引
- 15. Apache lucene索引
- 16. Zend Lucene索引
- 17. Lucene索引
- 18. Jackrabbit Lucene索引
- 19. Lucene索引MAXFieldLength
- 20. Lucene索引
- 21. Sitecore的Lucene索引
- 22. 使用Neo4j Lucene索引的Rexster擴展
- 23. 使用Hadoop作爲MySQL存儲引擎?
- 24. 如何在IQueryable中爲Lucene使用DbFunctions索引搜索
- 25. 使用並行擴展索引Lucene
- 26. 使用Lucene IndexWriter創建Solr索引
- 27. 如何使用Lucene查詢ElasticSearch索引
- 28. 使用Lucene索引複合類型
- 29. 使用javascript查詢lucene索引
- 30. Lucene索引 - 使用Web服務
請再說明一下:您是否在嘗試羣集文檔?那鄰接表是關於什麼的?假設所有相關信息都可用於MAP步驟,那麼您要在那裏執行什麼計算(粗略)? – 2011-06-17 20:39:29
我正在嘗試羣集文件,但羣集不會在Hadoop中發生。我只是準備其他階段的輸入... – dvk 2011-06-18 02:11:35
那麼你需要從Mapper的索引中獲得什麼信息?條款?給定文件的條款?期限 - 文件對? – 2011-06-18 04:12:48