Используйте NSUserActivity или Core Spotlight

Я прочитал учебник и обнаружил, что NSUserActivity для индексной информации, когда пользователь делает деятельность, Core Spotlight для индексации набора данных контента в приложении.

Использовать NSUserActivity

var activity = NSUserActivity(activityType: "com.example.demo.searchapi")
activity.title = contactEntity.name
activity.userInfo = ["id": contactEntity.uid]
activity.eligibleForSearch = true
activity.keywords = NSSet(array: [contactEntity.name,contactEntity.phoneNumber, contactEntity.email]) as! Set

activity.becomeCurrent()

Используйте Core Spotlight

let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeContact as String)
attributeSet.title = contactEntity.name
attributeSet.relatedUniqueIdentifier = contactEntity.uid

let searchableItem = CSSearchableItem(uniqueIdentifier: contactEntity.uid, domainIdentifier: "com.example.demo.searchapi", attributeSet: attributeSet)

CSSearchableIndex.defaultSearchableIndex().indexSearchableItems(searchableItems) { error in  
if let error = error { 
    print("Error indexing: \(error)")
} else {
    print("Indexed.")
}

Но я не думаю, что есть разница между двумя результатами решения. Если пользователь делает деятельность, я могу использовать Core Spotlight, вместо NSUserActivity, Это дает мне тот же результат.

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

1 ответ

Решение

Сейчас я включаю Core Spotlight и NSUserActivity в мои приложения, и я пришел, чтобы узнать некоторые различия.

Как сказал @PGDev в ваших комментариях, NSUserActivity может быть установлен как публичный индекс (на серверах Apple), который может быть полезен для отображения в результатах поиска других пользователей. Пока Core Spotlight есть только для каждого устройства.

Самая большая выгодная разница с NSUserActivity, что относится к моим приложениям, заключается в том, что чем больше пользователей выполняют те же activityСкажем, прочитайте ту же новость, тем популярнее становится индекс, который может принести полезные результаты. Apple - улучшите результаты поиска

  • Частота, с которой пользователи просматривают ваш контент (который фиксируется при использовании вами NSUserActivity)
  • Количество пользователей, взаимодействующих с вашим контентом (определяется коэффициентом вовлеченности, который основан на количестве раз, когда пользователи нажимают на элемент, связанный с вашим приложением, и на количество элементов, связанных с приложением, которые отображаются в результатах поиска)
  • Популярность URL на вашем сайте и объем доступных структурированных данных
Другие вопросы по тегам