У меня есть огромный файл дампа — 12 ГБ текста, содержащего миллионы записей. Каждая запись имеет числовой идентификатор, некоторый текст и другие не относящиеся к делу свойства. Я хочу преобразовать этот файл во что-то, что обеспечит эффективный поиск. То есть, учитывая идентификатор, он быстро вернет текст. Ограничения:
- Встроен в Java, желательно без внешнего сервера или зависимостей от иностранного языка.
- Читает и пишет на диск, а не в память - у меня нет 12гб ОЗУ.
- Не сильно раздувает - не хочу превращать файл 12гб в индекс 200гб. Мне не нужен полнотекстовый поиск, сортировка или что-то необычное — просто поиск по ключу-значению.
- Эффективность — данных много, а у меня всего одна машина, поэтому проблема со скоростью. Предпочтение отдается инструментам, которые могут хранить большие пакеты и/или хорошо работать с несколькими потоками.
- Хранение более одного поля — это хорошо, но не обязательно. Основная проблема — текст.
Ваши рекомендации приветствуются!
id=>lineNumber
- person   schedule 06.12.2012