Но некоторые куски текста попадают в итоговый ответ несколько раз. Например, если в строке «это строка для примера» искать слово «строка», то можно получить в качестве результата сразу несколько фрагментов – «о строка», « строка», «строка», «трока», «строк» и т.д. Эта проблема решается легко – нужно сохранять не сами фрагменты, а индексы их начала и конца в тексте. При добавлении нового необходимо сначала проверить пересечение интервалов с уже существующими, и если для одного ключевого слова пересекаются два интервала, то необходимо взять их объединение. И даже этот вариант работает быстрее разбиения текста несколько раз.