хмммм, если вы думаете об использовании лайка, это означает, что, скорее всего, вы хотите иметь классическое автозаполнение (начало слова совпадает).
Как насчет организации (красиво) ваших данных в26-дерево (одна запись на букву, или, если вы поддерживаете не буквы, хорошо выбранное x-дерево).Таким образом, вы организуете свои данные один раз, а затем получите быстрый результат при разборе дерева.если вы хотите ограничить количество результатов, предложенных в вашем автозаполнении, вы можете адаптировать алгоритм анализа дерева.Кажется простым и эффективным (подобный синтаксис в SQL должен будет сравнивать все ваши элементы в вашей таблице каждый раз, в то время как мое решение намного быстрее, если данные заданы правильно)
Другое решение, вы можете посмотреть на Qtреализация QCompleter (может быть, излишне зависеть от Qt вашего кода, я не знаю)