основные данные - лучший поиск с использованием предикатов - PullRequest
0 голосов
/ 24 июля 2011

В моем приложении Core Data у меня есть сущность Person (которая имеет атрибут fullname).Самым простым способом поиска имени является поиск предиката по полям:

[predicateArray addObject:[NSPredicate predicateWithFormat:@"fullname CONTAINS[cd] %@", searchString]];

Но из того, что я выбрал, это поиск по регулярному выражению, который может быть дорогим, особенно есливключить живой поиск (т. е. поиск во время ввода) и, если список очень большой.Есть ли лучший способ сделать этот поиск?Можете ли вы как-то преобразовать fullName, чтобы он быстрее выполнял поиск?

1 Ответ

0 голосов
/ 24 июля 2011

Вам, вероятно, интересен подход, подобный этому:

Базовая оптимизация поиска данных

По сути, вы создаете несколько дочерних объектов поиска для оптимизации для первых нескольких символов.

Вы, вероятно, также ищете «начинается с» вместо «содержит» в своем предикате, редко люди мысленно организуют свои контакты по средним буквам своего имени. Обычно они начинают с ввода «А» для Адама или Энди и т. Д., А не «am» или «nd».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...