Я предполагаю, что пользователь печатает что-то, что должно соответствовать «ключу»? Или «контент»?
Предполагая, что это ключ, затем сортируйте ключи и используйте двоичный поиск. Как только вы получили удар (предполагая частичное совпадение, например, первую букву), просто продолжайте сканирование, пока совпадения не пройдут. Это ваш набор результатов.
Если вы запрашиваете контент, то это та же предпосылка, но вам нужно инвертировать индекс, сделать контент частью ваших ключей и отсортировать их.