Я пытаюсь проанализировать текстовый файл слово за словом, и мне нужно иметь возможность сохранить смещение каждого слова от начала файла, чтобы я мог затем найти точный экземпляр слова в тексте файл. Сейчас я имею дело с некоторыми очень большими текстовыми файлами, поэтому мне было интересно, каков наиболее эффективный способ сделать это?
РЕДАКТИРОВАТЬ: некоторые подробности.
У меня будет две таблицы в базе данных. Давайте назовем их СЛОВАми, в которых хранятся слова и ССЫЛКИ, которые являются ссылками для каждого слова в файле.
Таблица ССЫЛКИ будет выглядеть примерно так:
id INT PRIMARY
file_id INT /* ID of the text file */
offset INT /* Offset from the start of the file to get to the start of the word */
Тогда у каждой записи WORDS есть referenced_id, который относится к записи в ССЫЛКАХ.
Это упрощенный пример. В действительности у меня будет другая таблица, которая связывает каждую запись из СЛОВ с одной или несколькими записями в ССЫЛКАХ, поскольку во многих файлах может быть много экземпляров каждого слова.
Цель всего этого - показать, где именно были найдены экземпляры слова при поиске. Поэтому, когда я нахожу слово, я могу получить его ссылку, а затем взять отрывок из текстового файла.