Реализуете полнотекстовый поиск на iPhone? - PullRequest
11 голосов
/ 10 января 2010

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

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

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

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

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

Ответы [ 2 ]

8 голосов
/ 10 января 2010

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

Я бы порекомендовал просто поиск по тексту; регулярное выражение на самом деле довольно быстро. В противном случае вы могли бы довольно легко реализовать Бойера-Мура .

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

2 голосов
/ 27 апреля 2010

Ответ FTS3 для SQLite. Google, есть много обучающих программ о том, как заставить это работать на iPhone.

А простой способ использовать SQLite на iPhone - использовать FMDB.

...