2015-10-09 2 views
2

Как решить, какой из них наиболее подходит среди рамок CoreSpotlight & NSUserActivity для программирования поиска.В чем основное отличие использования NSUserActivity & CoreSpotlight для программирования поиска? Как выбрать из них?

+1

Смотреть WWDC 2015 видео "Введение в API Поиска" - это дает отличный обзор и ответ на этот самый вопрос: https: //developer.apple.com/videos/play/wwdc2015-709/ –

+0

Это тоже очень полезно: https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/in dex.html # // apple_ref/doc/uid/TP40016308 – Niraj

+0

«В отличие от NSUserActivity, Core Spotlight не требует, чтобы пользователи посещали контент, чтобы индексировать его» – onmyway133

ответ

4

CoreSpotlight

  • не требует от пользователей, чтобы посетить содержание, чтобы индексировать (содержание индекса в любой точке)
  • частный индекс на устройстве (не использовать Ключевых API, Spotlight, чтобы сделать пункты публично для поиска)

NSUserActivity

  • индекс может только пользователей на форма деятельности в приложении
  • государственные/частные индексации
  • индексации навигационных точек
3

В дополнение к @sash ответ «s, вы можете смотреть WWDC 2015 Session 709 Introducing App Search

То же

  • userActivity в application(_:continueUserActivity:restorationHandler:) имеет activityType == CSSearchableItemActionType
  • Использование CSSearchableItemAttributeSet для описания атрибуту

Различия

CoreSpotlight

  • Намерены для индексации много элементов, что делает их доступными для поиска
  • Опишите атрибут с CSSearchableItem.attributeSet
  • пакетирования
  • обновления, удаление

CoreSpotlight для частных данных, которые индексируются на устройстве, и вы можете использовать CoreSpotlight всесторонне индексные данные в приложении.

Если вы строите или у вас есть приложение для социальных сетей, и вы хотели бы проиндексировать все сообщения, отправленные и полученные пользователем, CoreSpotlight является правильным инструментом для работы.

NSUserActivity

  • Намерение для индексации текущей деятельности, что делает его удобным в центре внимания, так что мы можем подобрать
  • Опишите атрибут с contentAttributes
  • Разрешить содержимое, чтобы быть в Apple, облака общественности в eligibleForPublicIndexing

Используйте NSUserActivity для публичного и частного контента, а также для индексирования точек навигации внутри вашего приложения.

Теперь есть еще один аромат NSUserActivity, который Дэйв затронул, что является публичным индексированием.

Подробнее о NSUserActivity

  • becomeCurrent для хэндовера, чтобы начать процесс
  • вещания Мы можем использовать eligibleForHandoff = false и eligibleForSearch = true, чтобы получить почти такой же эффект, как CoreSpotlight
  • Мы должны держать NSUserActivity объекты вокруг до окончания работы индекса
  • Мы не знаем, когда индекс работа заканчивает

Предназначена для совместной работы

Этих API-интерфейсов, а различны, они действительно предназначены для совместной работы.

В том же приложении для одного и того же контента вы можете использовать несколько API.

Единственное, что нужно помнить, - это элементы, индексированные из нескольких мест, которые вы хотите связать с этими элементами, указав им одинаковый идентификатор.

Больше ресурсов