На диске индекс подстроки

у меня есть файл (fasta-файла, чтобы быть конкретным), что я хотел бы индекса, так что я могу быстро найти любой подстроки в файле, а затем найти место в пределах первоначального fasta-файла.

Это будет нетрудно сделать, - во многих случаях с помощью Trie или массив подстрок, к сожалению строки, мне нужно индекса 800 Мегабайт, который означает, что, выполняя их в памяти неприемлемо, поэтому я ищу разумного способа создать индекс на диск, с минимальным использованием памяти.

(edit для разъяснения)

меня интересует только заголовки белков, так и для крупных баз данных, меня интересует, что составляет примерно 800 Мегабайт текста.

я хотел бы быть в состоянии найти точное подстроки в O(N) времени, исходя из входной строки. Это должно быть полезной на 32-битных компьютерах, как он будет отправлен к случайным людям, которые не ожидается, что 64-битные машины.

я хочу быть в состоянии индексировать против любого слова break в пределах строки, конца строки (хотя строк может быть несколько MBs).

Надеюсь, это разъясняется, что для этого нужно и почему нынешний решения, учитывая не освещая.

я также должен добавить, что это должно быть сделано в java, и должно быть сделано на клиентских компьютерах с различными операционными системами, поэтому я не могу использовать любой ОС конкретное решение, и оно должно быть прагматический решение.

Найдено 4 ответа:

On Disk Substring index

http://stackoverflow.com/questions/53172/on-disk-substring-index

Посмотреть решение →