将 Algolia 集成到您的 Swift 项目中的完美起点
文档 • 社区论坛 • Stack Overflow • 报告一个错误 • 常见问题解答 • 支持
✨ 功能
- 纯净的多平台 Swift 客户端
- 带类型请求和响应
- 广泛使用
Result
类型 - 使用
Codable
协议的强大功能以轻松集成您的领域模型 - 线程安全客户端
- 详细的日志
- 可注入的 HTTP 客户端
安装
Swift 包管理器
Swift包管理器是用于管理Swift代码分发的一个工具。它与Swift构建系统集成,以自动下载依赖库、编译和链接依赖库的过程。自Swift 5和Xcode 11发布以来,SPM与iOS、macOS和tvOS构建系统兼容,可用于创建应用程序。
要使用SwiftPM,您应该使用Xcode 11打开您的项目。点击 文件
-> Swift Packages
-> 添加包依赖
,输入InstantSearch仓库的URL。
如果您是框架开发者,且将Swift API客户端作为依赖项使用,请更新您的Package.swift
文件。
let package = Package(
// 8.17.0 ..< 9.0.0
dependencies: [
.package(url: "https://github.com/algolia/algoliasearch-client-swift", from: "8.17.0")
],
// ...
)
将import AlgoliaSearchClient
添加到您的源文件中。
Cocoapods
CocoaPods是一个用于Cocoa项目的依赖管理器。
要安装Algolia Swift客户端,只需在Podfile中添加以下行。
pod 'AlgoliaSearchClient', '~> 8.17'
# pod 'InstantSearchClient', '~> 6.0' // Swift 4.2
# pod 'InstantSearchClient', '~> 5.0' // Swift 4.1
然后,运行以下命令
$ pod update
Carthage
Carthage是一个简单的、去中心化的Cocoa依赖管理器。
- 要安装InstantSearch,只需将以下行添加到Cartfile中。
github "algolia/algoliasearch-client-swift" ~> 8.17
# github "algolia/algoliasearch-client-swift" ~> 6.0.0 // Swift 4.2
# github "algolia/algoliasearch-client-swift" ~> 5.0.0 // Swift 4.1
- 在项目目录下启动以下命令(对于v.8.0+)
carthage update
./Carthage/Checkouts/algoliasearch-client-swift/carthage-prebuild
carthage build
如果您第一次在项目中使用Carthage,您需要按照Carthage的说明进行一些额外的步骤。
💡 入门指南
初始化客户端
开始时,您需要初始化客户端。为此,您需要您的应用ID和API密钥。您可以在您的Algolia账户中找到这两个。
let client = Client(appID: "YourApplicationID", apiKey: "YourAdminAPIKey")
let index = client.index(withName: "your_index_name")
推送数据
无需任何预先配置,您可以使用以下代码在 contact 指数中开始索引联系信息
struct Contact: Encodable {
let firstname: String
let lastname: String
let followers: Int
let company: String
}
let contacts: [Contact] = [
.init(firstname: "Jimmie", lastname: "Barninger", followers: 93, company: "California Paint"),
.init(firstname: "Warren", lastname: "Speach", followers: 42, company: "Norwalk Crmc")
]
let index = client.index(withName: "contacts")
index.saveObjects(contacts, autoGeneratingObjectID: true) { result in
if case .success(let response) = result {
print("Response: \(response)")
}
}
搜索
您现在可以通过“firstname”(名),“lastname”(姓),“company”(公司等)等进行搜索(即使有拼写错误)
index.search(query: "jimmie") { result in
switch result {
case .failure(let error):
print("Error: \(error)")
case .success(let response):
print("Response: \(response)")
do {
let foundContacts: [Contact] = try response.extractsHits()
print("Found contacts: \(foundContacts)")
} catch let error {
print("Contact parsing error: \(error)")
}
}
}
配置
设置可以被配置以调整搜索行为。例如,您可以在已经很好的内置相关性中添加按关注者数量排序的个性化排序
let settings = Settings()
.set(\.customRanking, to: [.desc("followers")])
index.setSettings(settings) { result in
if case .failure(let error) = result {
print("Error when applying settings: \(error)")
}
}
您还可以按重要性的顺序配置您想要索引的属性列表(第一个=最重要的)
注意:由于该引擎旨在在您输入时提出建议,因此您通常会按前缀搜索。在这种情况下,属性的顺序对于决定哪个命中最佳至关重要
let settings = Settings()
.set(\.searchableAttributes, to: ["lastname", "firstname", "company"])
index.setSettings(settings) { result in
if case .failure(let error) = result {
print("Error when applying settings: \(error)")
}
}
要查看完整文档,请访问Algolia Swift API 客户端文档。
📝 示例
您可以在Algolia API 客户端演练场中找到代码示例。
使用Dockerfile
如果您想在没有安装所有依赖项的情况下贡献此项目,您可以使用我们的Docker镜像。请参阅我们的专用指南,了解更多信息。
📄 许可信息
Algolia Swift API 客户端是一个开源软件,授权协议为 MIT 协议。
备注
Objective-C 支持
Swift API 客户端兼容 Objective-C 7.0.5 版本。如果您正在使用 Objective-C 项目,请使用此版本客户端。
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 提问。
- 遇到问题? 在联系支持之前,我们建议您访问我们的 常见问题解答,在那里您将找到客户端中最常见的问题和要注意的事项的答案。
- 发现了一个bug? 您可以在 GitHub issue 中打开一个问题。