因此,我有一個包含70,000行按字母順序排列的字典文件。每一行都是帶有翻譯的單獨單詞。你會推薦什麼作爲在這樣的文件中搜索的最佳做法?我正在考慮文件索引,但可能有更好的方法。在大文本文件(java)中搜索
1
A
回答
3
使用Java NIO的內存映射文件支持所有,內存映射它的第一次。其次,預處理它以查找新條目開始的所有偏移量。最後,編寫一些可以查找條目的二進制搜索代碼。我認爲這可能是最輕量級和內存效率的解決方案。
Lucene還使用跳過列表:您還可以每隔16次(或左右)進入內存並在二進制搜索的第一階段中使用它。然後,您必須轉到實際文件才能確切輸入。
1
相關問題
- 1. 在Matlab中搜索大文本文件
- 2. 大文本文件搜索
- 3. Java文本文件搜索
- 4. Java在文本文件中搜索文本
- 5. 通過搜索文件夾在大文件中查找文本
- 6. 搜索Java中的文本文件,並列出搜索結果
- 7. 搜索巨大的文本文件
- 8. Hadoop大數據文件文本搜索
- 9. c#搜索大文本文件
- 10. 搜索文本文件並打印Java
- 11. Java搜索一個文本文件
- 12. 搜索中的Java文件
- 13. C#在文本文件中搜索
- 14. 在文本文件中搜索數字?
- 15. Zend lucene - 在文本文件中搜索
- 16. 在文本文件中搜索變量
- 17. 在文本文件中搜索單詞
- 18. 在AFP文件中搜索文本
- 19. 在PHP中搜索文本文件
- 20. 在java中搜索文本文件中的單詞
- 21. 在Java中搜索文本文件中的關鍵字
- 22. Java。在文本區域搜索文字
- 23. 在大文本日誌文件中搜索
- 24. 在大文本文件中搜索並找到位置
- 25. 在預處理的大文本文件中搜索一行
- 26. 在文本文件中搜索不區分大小寫
- 27. 用於在JSON文件中搜索文本的Java庫
- 28. 在大文檔中搜索
- 29. java xpath搜索文本
- 30. 搜索文本文件
我的文件只有5 MB的內存,你認爲內存映射會給我一個更好的性能?我一直在考慮跳轉條目並實現二進制搜索,但是我還沒有發現任何技巧,如何在java中的文件行之間跳轉,你會給我一些提示嗎? – user1049280 2012-07-07 13:27:03
我將使用這個代碼爲Linux,無論是爲Android。我聽說Lucene在android上無法正常工作。 – user1049280 2012-07-07 13:35:48
我不推薦Lucene--我剛剛提到了它在實現中使用的一個技巧,因爲在這方面它是一個非常好的角色模型。內存映射文件使用起來很輕鬆(它給你一個類似於數組的文件視圖),所以它對你來說是雙贏的:更簡單的API以獲得更好的性能。當然,你總是可以選擇將整個文件作爲String [70000] [2]'加載到RAM中。這種解決方案只是沒有樂趣,這就是全部:) – 2012-07-07 14:09:59