Ух ты, здесь написаны целые курсы и статьи ...
Во-первых, если вы храните в базе данных, есть индексы и различные объединения и представления, а также все виды развлечений для ускорения ваших запросов.
Однако вы указали полнотекстовый поиск, поэтому я направлю вас на эту страницу , в которой содержится сравнение наиболее распространенных методов. Теперь это для массивов, но даст вам понимание того, как можно улучшить или изменить разбиение или поиск.
Далее прочитайте эту статью в Википедии о поиске строк. Есть наивный поиск, где вы просто смотрите, или те, где вы сначала создаете индекс, так что последующие поиски позволят вам переходить, как главы или номера страниц в книге текста.
Методы хранения индексов или шаблонов также очень полезны при сжатии, и это еще один способ ускорить поиск - если вы создаете сжатую строку, вы можете быть умным и переходить к сжатому разделу, извлекать и сравнивать, в зависимости от от того, есть ли у вас ограниченное количество шаблонов, которые вы ищете, или у вас есть что-нибудь.
Кроме того, существует нечеткий поиск, когда вы не получаете точного соответствия - вы можете сделать это на некотором балле «близость» - например, на процент совпадений символов.
Надеюсь, это даст вам хотя бы хорошую отправную точку!