Полнотекстовый поиск по подстрокам в iOS

Мне нужно, чтобы мое приложение для iPhone / iPad могло быстро выполнять поиск среди примерно 10 000 записей (каждая примерно на один абзац текста) для любой подстроки, содержащейся в записи. Таким образом, если запись содержит слово «Flame», запрос «lame» должен соответствовать.

В настоящее время я использую SQLite, но поиск "LIKE% term%" слишком медленный для такого количества записей. Включение полнотекстового поиска не Похоже, он полностью удовлетворит мои потребности, так как SQLite поддерживает только подстановочные знаки префикса (например, «Flam *», а не «* lame»).

Я экспериментировал с использованием гигантского блока текста (~ 350K), и выполнение [NSString rangeOfString: ...], которое, как мне кажется, использует алгоритм Бойера-Мура. Это быстрее, чем поиск по запросу "LIKE% term%", но все же не та скорость, на которую я надеюсь.

Есть ли предложения по подходам или библиотекам, которые позволили бы достичь такого масштабируемого поиска по подстрокам и которые будут работать на iPhone?

7
задан 18 March 2011 в 16:58
поделиться