Полнотекстовый поиск в файлах пакета приложений iOS

#iphone #ios #ipad

#iPhone #iOS #iPad

Вопрос:

Как бы я мог выполнить полнотекстовый поиск по множеству html-файлов в пакете приложений iOS? Мне нужно, чтобы много веб-контента было доступно в автономном режиме, и мне нужно иметь возможность выполнять полнотекстовый поиск по всему этому. Я чувствую, что хранение этого контента в базе данных станет немного громоздким и значительно замедлит работу.

Мысли?

— Спасибо, Брэндон

Комментарии:

1. Как xpath создает полный текст? Единственный материал xpath, который я нахожу через Google, — это синтаксический анализ xml.

2. я надеюсь, что это также будет полезно для синтаксического анализа html

3. Я нахожу кое-что о lucene kit, портированном на Objective C. Это более старый пост vafer.org/blog/20090107014544 но в нем упоминается о том, что lucene kit работает для Mac OS и iPhone. Я не могу найти пример iPhone в репозитории, кажется, только OSX. Кто-нибудь видел что-нибудь об обновлении для этого?

Ответ №1:

Имейте в виду, что, несмотря на то, что это мобильное устройство, у iPhone довольно быстрый процессор. Все, что вы делаете [сказано иронично], это поиск текста. Эти устройства созданы для видео, музыки и изображений.

В порядке увеличения объемов кодирования с вашей стороны вы можете:

  • Используйте стороннюю библиотеку (единственная, которую я нашел, это Locayta)
  • Перенесите библиотеку поиска на языке Objective C (например, Lucene)
  • Сохраните ваши HTML-файлы в базе данных и выполните поиск SQL для любого текста поиска. Без кучи дополнительного кодирования это действительно будет легко работать только при точном совпадении по одному поисковому запросу.
  • Вручную загрузите каждый файл в приложение и выполните поиск по тексту, используя rangeOfString от NSString. Добавляйте функции по желанию.
  • Создайте свою собственную поисковую систему, основанную (по крайней мере) на индексе терминов. Начните с обрезки стоп-слов, остановитесь, если чувствуете необходимость, решите, хотите ли вы релевантности документа или нет, и, возможно, примените алгоритмы векторного пространства. Добавление автозамены, вероятно, выходит за рамки компетенции вашего приложения, но, тем не менее, создание собственной поисковой системы по тексту было бы быстрым (во время выполнения) способом обеспечения поиска по нескольким словам и большим заголовком в вашем резюме.

Комментарии:

1. Локайта абсолютно фантастична. Спасибо.

2. Есть ли у кого-нибудь стоимость коммерческой лицензии для этого?

3. похоже, что единовременная стоимость одного приложения составляет 1 тыс. locayta.com/iOS-search-engine/locayta-search-mobile (внизу справа)