我正在使用SwiftType Elastic Search + C#并遇到反序列化响应的问题,原因是SwiftType将所有字段作为具有raw属性的对象返回为对象(https://swiftype.com/documentation/app-search/api / search),例如:
{
"meta": {
"warnings": [],
"page": {
"current": 1,
"total_pages": 1,
"total_results": 2,
"size": 10
},
"request_id": "6887a53f701a59574a0f3a7012e01aa8"
},
"results": [
{
"phone": {
"raw": 3148304280.0
},
"accounts_balance_ach": {
"raw": 27068128.71
},
"accounts_balance_pending": {
"raw": "46809195.64"
},
"email": {
"raw": "Brisa34@hotmail.com"
},
"accounts_count": {
"raw": 6.0
},
"id": {
"raw": "c98808a2-d7d6-4444-834d-2fe4f6858f6b"
},
"display_name": {
"raw": "The Johnstons"
},
"type": {
"raw": "Couple"
},
"advisor_email": {
"raw": "Cornelius_Schiller14@hotmail.com"
},
"created_at": …Run Code Online (Sandbox Code Playgroud) 我想索引我的笔记以进行全局搜索。我使用了Ray Wenderlich的教程。
我在info.plist中添加了字符串:
"myapp.com.notes.note"
Run Code Online (Sandbox Code Playgroud)
这是我的对象:
struct Note {
public static let domainIdentifier = "myapp.com.notes.note"
public var userActivityUserInfo:[String: Any] {
return ["id": note_id]
}
public var userActivity: NSUserActivity {
let activity = NSUserActivity(activityType: Note.domainIdentifier)
activity.title = "\(note.title)"
activity.userInfo = userActivityUserInfo
activity.keywords = [note.title, note.text]
return activity
}
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何注册。在我的视图控制器中,我尝试过:
override func viewDidLoad() {
super.viewDidLoad()
for note in self.notes {
note.userActivity.becomeCurrent()
}
}
Run Code Online (Sandbox Code Playgroud)
但总是得到:
sendUserActivityToServer,在活动EC1785C0-2904-4F0A-9885-F4DB91C4B245无效后调用它,因此不执行任何操作。