Algolia Search API 客户端 for Swift 和 Objective-C
Algolia Search 是一个托管全文、数值和分面搜索引擎,可以从第一个键盘敲击处提供实时结果。通过 Algolia Search API 客户端,你可以在 Swift 代码中轻松使用 Algolia Search REST API。
值得一提的是,这个库 100% 兼容 Objective-C。
作为本说明书的补充,你可以浏览自动生成的参考文档。(也请参见支持离线版本的版本。)
API 文档
你可以在 Algolia 的网站上找到完整的参考信息(英文)。
目录
入门
支持的平台
我们的 Swift 客户端支持在 iOS、macOS、tvOS 和 watchOS 上运行,并且可以使用 Swift 和 Objective-C 语言。
安装
Swift 4.2
- 将 InstantSearchClient 作为依赖项添加
- CocoaPods:在您的
Podfile
文件中添加pod 'InstantSearchClient', '~> 6.0'
。 - Carthage:在您的
Cartfile
文件中添加github "algolia/algoliasearch-client-swift" ~> 6.0.0
。 - SwiftPM:在您的
Package.swift
文件中将以下内容添加到 package 依赖数组:.package(url:"https://github.com/algolia/algoliasearch-client-swift", from: "6.0.0")
,然后将InstantSearchClient
添加到您的目标依赖中。
- CocoaPods:在您的
- 将
import InstantSearchClient
添加到您的源文件中。
Swift 4.1
- 将 InstantSearchClient 作为依赖项添加
- CocoaPods:在您的
Podfile
文件中添加pod 'InstantSearchClient', '~> 5.0'
。 - Carthage:在您的
Cartfile
文件中添加github "algolia/algoliasearch-client-swift" ~> 5.0.0
。 - SwiftPM:在您的
Package.swift
文件中将以下内容添加到 package 依赖数组:.package(url:"https://github.com/algolia/algoliasearch-client-swift", from: "5.0.0")
,然后将InstantSearchClient
添加到您的目标依赖中。
- CocoaPods:在您的
- 将
import InstantSearchClient
添加到您的源文件中。
快速入门
在 30 秒内,本快速入门教程将向您展示如何索引和搜索对象。
初始化客户端
首先需要初始化客户端。为此,你需要你的 应用程序ID 和 API密钥。你可以在 你的Algolia账户中找到它们。
let client = Client(appID: "YourApplicationID", apiKey: "YourAPIKey")
推送数据
在不进行任何先前的配置的情况下,你可以使用以下代码在 contacts
索引中开始索引 500 个联系人。
// Load content file
let jsonURL = Bundle.main.url(forResource: "contacts", withExtension: "json")
let jsonData = try! Data(contentsOf: jsonURL!)
let dict = try! JSONSerialization.jsonObject(with: jsonData!)
// Load all objects in the JSON file into an index named "contacts".
let index = client.index(withName: "contacts")
index.addObjects(dict["objects"])
搜索
你现在可以使用姓名、公司等信息进行搜索联系人(即便有误拼)
// search by firstname
index.search(Query(query: "jimmie"), completionHandler: { (content, error) -> Void in
if error == nil {
print("Result: \(content)")
}
})
// search a firstname with typo
index.search(Query(query: "jimie"), completionHandler: { (content, error) -> Void in
if error == nil {
print("Result: \(content)")
}
})
// search for a company
index.search(Query(query: "california paint"), completionHandler: { (content, error) -> Void in
if error == nil {
print("Result: \(content)")
}
})
// search for a firstname & company
index.search(Query(query: "jimmie paint"), completionHandler: { (content, error) -> Void in
if error == nil {
print("Result: \(content)")
}
})
配置
可以自定义设置,以调整搜索行为。例如,可以将按关注者数量排序的自定义排序添加到内置的相关性排序中。
let customRanking = ["desc(followers)"]
let settings = ["customRanking": customRanking]
index.setSettings(settings, completionHandler: { (content, error) -> Void in
if error != nil {
print("Error when applying settings: \(error!)")
}
})
你也可以按程度重要顺序(重要程度越高,排位越优先)配置你想索引的属性列表。
注意:由于该引擎设计为在键入时提供建议结果,你通常会通过前缀进行搜索。在这种情况下,属性排序对于确定哪个返回结果最佳至关重要。
let customRanking = ["lastname", "firstname", "company", "email", "city", "address"]
let settings = ["searchableAttributes": customRanking]
index.setSettings(settings, completionHandler: { (content, error) -> Void in
if error != nil {
print("Error when applying settings: \(error!)")
}
})
注意事项
先前的Objective-C API客户端
2015年7月,我们发布了一个新的Swift客户端版本,该版本能与Swift和Objective-C一起工作。截至第3版(2016年4月),Swift已成为Swift和Objective-C项目的参考实现。《Objective-C API客户端》不再处于积极开发状态。它仍然支持错误修复,但不会接收到新功能。如果您之前使用我们的Objective-C客户端,请参阅《从Objective-C迁移到Swift API客户端的迁移指南》。
迁移指南
如果您之前使用的是我们Swift客户端的2.x版本,请参阅迁移到3.x版本的迁移指南。
Swift 3
您可以通过以下方式之一使用此库并配合Swift
pod 'AlgoliaSearch-Client-Swift', '~> 4.8.1'
pod 'AlgoliaSearch-Client-Swift', :git => 'https://github.com/algolia/algoliasearch-client-swift.git', :branch => 'swift-3'
获取帮助
- 需要帮助吗?在Algolia社区或Stack Overflow提问。
- 发现了一个错误吗?您可以在GitHub issue中创建一个。