Я ищу предложения на лучшем способе реализовать полнотекстовый поиск на некоторых статических данных по iPhone.
В основном у меня есть приложение, которое содержит автономную версию веб-сайта, приблизительно 50 МБ текста, и я хотел бы за пользователей быть в состоянии искать условия. Я полагаю, что должен так или иначе создать таблицу ("слово", reference_to_file_containing_word) или что-то, поместить, это или в Базовые Данные или в просто sqlite, индексировать столбец "слова", затем иметь поисковое средство ищет таблицу критерии поиска и берет пересечение множеств результатов для условий или чего-то.
Это не позволило бы людям искать фразы, но это будет довольно легко и вероятно не слишком медленно.
Я хотел бы просто использовать существующие функции SDK для этого. Я должен использовать Базовые Данные или sqlite?
У кого-либо есть какие-либо другие идеи о том, как это могло быть сделано?
Хотите разместить каждое слово в документе в отдельной строке в базе данных? Это займет еще больше места, чем сам документ.
Я бы порекомендовал просто искать по тексту; регекс на самом деле довольно быстрый. В противном случае, вы могли бы довольно легко реализовать Boyer-Moore.
[Редактирование] Если вы настаиваете на создании индекса слов, вы не можете победить тройку . Это будет быстрее, чем использование базы данных, и, скорее всего, займет меньше места, чем сами документы (в отличие от базы данных)
.Ответ - FTS3 для SQLite. Погуглите, есть много руководств о том, как заставить его работать на iPhone.
И самый простой способ использовать SQLite на iPhone - это использовать FMDB.