我有一個文本文件組成的約4000萬行的鍵/值的形式,我想檢索給定的關鍵值在秒(2-3)最大,我不有足夠的內存將它們全部存儲在JVM內存中作爲散列表,我可以使用系統存儲+一些索引來實現這一點嗎? 我一直在閱讀有關lucene,但不知道它是否是尋找。搜索巨大的文本文件
-1
A
回答
0
我認爲Hadoop是一個更好的工具來完成這項任務:只需將原始文件拆分到從屬設備之間即可。 map函數正在對原始文件的每個部分執行搜索,reduce是所有調查結果的組合。如果密鑰是唯一的,則只有一個從機提供答案。
0
Lucene是用於自由文本搜索。如果不需要使用文本文件,最快捷的解決方案就是使用數據庫。 4000萬條記錄非常多,但即使如此,使用唯一索引(在關鍵字上)找到單個記錄的速度也應快於2-3秒。您可以使用像HSQLDB這樣的嵌入式數據庫,只要確保將其配置爲使用磁盤存儲!
如果你需要保留文本文件,如果你能負擔得起的存儲在內存中,從關鍵到創建一個TreeMap的偏移。聽起來很亂。
1
如果您想搜索關鍵字或值中的「文本字符串」,可以使用Apache Lucene。 Lucene是一個全功能的文本搜索引擎庫,但你可以使用它也只是用於搜索完全匹配的密鑰值。我使用超過6千萬文件的Lucene,並且我有小於1秒爲每個搜索。
否則,如果你想只一個關鍵/值商店,你可以使用NoSQL的鍵/值數據庫一樣Redis,但我還沒試過。
相關問題
- 1. 搜索巨大的日誌文件
- 2. 大文本文件搜索
- 3. 在大文本文件(java)中搜索
- 4. 在Matlab中搜索大文本文件
- 5. PHP從巨大的文本文件
- 6. 閱讀巨大的文本文件Java
- 7. 在巨大的日誌文件中搜索數百種模式
- 8. 搜索文本文件
- 9. 搜索文本文件
- 10. Java文本文件搜索
- 11. Python文本文件搜索
- 12. 從巨大的文本文件中剝離文本塊
- 13. 巨大的main.cs文件
- 14. PowerShell的任何搜索一個大的文本文件快
- 15. PHP腳本搜索CSV文本文件
- 16. 在預處理的大文本文件中搜索一行
- 17. 在巨大的表格搜索
- 18. 搜索一批文件的文本行
- 19. 來自GUI的文本文件搜索
- 20. 搜索文本文件的字符串
- 21. 如何搜索在一個巨大的文本文件中有重複的值周圍五十萬條記錄
- 22. shell腳本文件搜索
- 23. Python文件搜索腳本
- 24. 文件搜索bash腳本
- 25. 搜索文本
- 26. 搜索PDF文本文本
- 27. 使用PdfStamper的巨大文件大小
- 28. 日誌文件大小是巨大的
- 29. 巨大的JSON文件的最佳文本編輯器?
- 30. 如何快速搜索大文本行分隔數據文件?
https://docs.oracle.com/javase/tutorial/essential/io/file.html – Sedrick