Я использую NSFetchedResultsController, чтобы показать некоторые результаты поиска в UITableView. Результаты поиска запрашиваются по следующему предикату:
[NSPredicate predicateWithFormat:@"(plainText CONTAINS %@)", _searchString]
Объект, в котором выполняется поиск, имеет около 25 000 объектов. Свойство plainText содержит строковое значение, содержащее примерно 700 слов каждое.
Этот поиск занимает около 20 секунд, что слишком медленно.
Есть ли способ оптимизировать производительность?
Я смотрел сессию WWDC 2010, где она говорит о нормализации ключевых слов в отдельную сущность, чтобы избежать использования CONTAINS. Это способ улучшить его, только у меня есть 700 ключевых слов каждое. Делая это 700 х 25 000 = 17 500 000 ключевых слов. Я сомневаюсь, что это улучшится. Должен ли я даже попробовать?