AlgoliaSearchClient 9.0.0

AlgoliaSearchClient 9.0.0

aallamThomas RaffrayAlgolia BotDhaya 维护。



  • Algolia

Algolia for Swift

将 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的说明进行一些额外的步骤。

💡入门指南

初始化客户端

开始时,您需要初始化客户端。为此,您需要您的应用IDAPI密钥。您可以在您的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 中打开一个问题。