Мне сложно определить, какое поисковое решение использовать в моем новом приложении для iPhone. У меня есть структура данных, представляющая собой иерархический список, который описывает оглавление, которое ссылается на файл HTML, хранящийся локально. У меня только два уровня в оглавлении (глава и раздел), поэтому он прекрасно вписывается в UITableView с заголовками и ячейками. Основным содержанием является текст в файлах HTML. Я хочу иметь отдельное представление, которое позволило бы кому-то искать слова и заставлять его возвращать соответствующие документы (в этом случае разделы, как описано в листе). Все эти данные жестко закодированы в приложении (они не изменяются), поэтому допустимо жесткое кодирование скомпилированного индекса в приложение. У меня есть несколько идей. Но вам нужны мнения о лучшем и простейшем способе реализации алгоритма поиска на iPhone.
== Индексация обратного слова ==
Я сканирую документы HTML на предмет соответствующих слов и сохраняю их в виде плоского файла (plist) с массивом ссылок на эти файлы для каждого слова.
Проблема в том, что это не помогает с релевантностью более чем одного слова или документа.
== Поиск в векторном пространстве ==
Это кажется хорошей идеей, но логика того, как реализовать такую вещь, кажется довольно сложной, особенно для упрощенного приложения для iPhone, которое отображает оглавление и набор страниц. Любые идеи о том, как реализовать такую вещь?
Какие рекомендации существуют для приложения для iPhone?