Intereting Posts
Отключить вращение в расширении приложения IOS для поставщика документов Tesseract OCR Camera Сортировка измененного массива на основе другого изменяемого массива? Как отправить запрос POST с параметрами и телом для данных JSON в Swift 3 с помощью Alamofire 4? Ошибка UICollectionView и прокрутки программы Безопасный лимит использования памяти сегодня? автозагрузка недоступна в режиме автоматического подсчета ссылок Проверить сортировку NSArray Проблема с шириной контрола страницы iOS – cellForRowAtIndexPath не вызван reloadData как программно отключить статическую сотовую iOS Xcode, Instruments: Как найти все более проникающий объект? Как получить URL профиля зарегистрированного пользователя с помощью набора Twitter / Fabric iOS В чем разница между NSUserDefaults и файлом .plist Как сделать панель состояния снова появляться после отклонения uiimagepickerviewcontroller

Оптимизация SQLite несколько LIKE-поиска для iOS

Я выполняю инструкцию select SQLite с несколькими предложениями LIKE в приложении iPhone. Операции напоминают следующее:

SELECT * FROM mytable WHERE name LIKE 'Smith %' OR name LIKE '% Smith %' OR name LIKE 'Smith_%' OR name LIKE '% Smith_%'; 

Выполнение в настоящее время занимает около 0,5 секунды на моем ноутбуке и около 2 секунд на устройстве. Я не могу индексировать столбец «name» «mytable» из-за ограничений пространства.

Каждое из предложений LIKE очень похоже – если кто-то терпит неудачу, вероятно, каждый из них будет. Поэтому я хотел бы сгруппировать их вместе, как оптимизировать мой поиск.

Можно ли это сделать, скажем, через REGEXP? Если да, то как и REGEXP включен по умолчанию?

Редактировать. Я пытаюсь сделать заявления в соответствии с:

 SELECT * FROM mytable WHERE name REGEXP '[ _]?Smith[ _,]'; 

SQLite действительно имеет встроенную полнотекстовую поисковую систему. Возможно, вы захотите ее использовать.

http://www.sqlite.org/fts3.html#section_1