Известный почтовый клиент Mozilla Thunderbird имеет панель поиска, которая называется «фильтровать эти сообщения». Он позволяет пользователю быстро фильтровать сообщения, отображая только те, чей заголовок, отправитель или получатели содержат слова, которые вводит пользователь.
Как бы вы реализовали такую функциональность, учитывая, что она должна быть максимально быстрой даже при отображении множества сообщений? Следует ли использовать предварительно вычисленный индекс или подобную структуру данных? Или просто перебирать сообщения?