Я ищу предложения для эффективного алгоритма поиска всех совпадений в большом тексте. Условия поиска будут содержаться в списке и могут иметь более 1000 возможностей. Поисковые термины могут быть 1 или более слов.
Очевидно, я мог бы сделать несколько проходов в тексте, сравнивая с каждым поисковым термином. Не слишком эффективно.
Я подумал о упорядочении поисковых терминов и объединении общих подсегментов. Таким образом, я мог быстро устранить большое количество терминов. Язык - это С++, и я могу использовать boost.
Примером поисковых терминов может быть список названий компаний из списка Fortune 500.
Идеи?