Реализация полнотекстового поиска на iPhone?

Я ищу предложения на лучшем способе реализовать полнотекстовый поиск на некоторых статических данных по iPhone.

В основном у меня есть приложение, которое содержит автономную версию веб-сайта, приблизительно 50 МБ текста, и я хотел бы за пользователей быть в состоянии искать условия. Я полагаю, что должен так или иначе создать таблицу ("слово", reference_to_file_containing_word) или что-то, поместить, это или в Базовые Данные или в просто sqlite, индексировать столбец "слова", затем иметь поисковое средство ищет таблицу критерии поиска и берет пересечение множеств результатов для условий или чего-то.

Это не позволило бы людям искать фразы, но это будет довольно легко и вероятно не слишком медленно.

Я хотел бы просто использовать существующие функции SDK для этого. Я должен использовать Базовые Данные или sqlite?

У кого-либо есть какие-либо другие идеи о том, как это могло быть сделано?

11
задан Nimrod 10 January 2010 в 04:51
поделиться

2 ответа

Хотите разместить каждое слово в документе в отдельной строке в базе данных? Это займет еще больше места, чем сам документ.

Я бы порекомендовал просто искать по тексту; регекс на самом деле довольно быстрый. В противном случае, вы могли бы довольно легко реализовать Boyer-Moore.

[Редактирование] Если вы настаиваете на создании индекса слов, вы не можете победить тройку . Это будет быстрее, чем использование базы данных, и, скорее всего, займет меньше места, чем сами документы (в отличие от базы данных)

.
8
ответ дан 3 December 2019 в 10:03
поделиться

Ответ - FTS3 для SQLite. Погуглите, есть много руководств о том, как заставить его работать на iPhone.

И самый простой способ использовать SQLite на iPhone - это использовать FMDB.

2
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: