Используйте 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 на вашем сайте и объем доступных структурированных данных