InstantSearchClientOffline 7.0.0

InstantSearchClientOffline 7.0.0

Robert Mogosvladislav 维护。



  • Algolia

Build Status Carthage compatible SwiftPM Compatible CocoaPods CocoaPods Swift 4.0 Objective-C compatible

Algolia Search API 客户端 for Swift 和 Objective-C

Algolia Search 是一个托管全文、数值和分面搜索引擎,可以从第一个键盘敲击处提供实时结果。通过 Algolia Search API 客户端,你可以在 Swift 代码中轻松使用 Algolia Search REST API

值得一提的是,这个库 100% 兼容 Objective-C。

作为本说明书的补充,你可以浏览自动生成的参考文档。(也请参见支持离线版本的版本。)

API 文档

你可以在 Algolia 的网站上找到完整的参考信息(英文)

目录

  1. 支持的平台

  2. 安装

  3. 快速入门

  4. 获取帮助

入门

支持的平台

我们的 Swift 客户端支持在 iOSmacOStvOSwatchOS 上运行,并且可以使用 SwiftObjective-C 语言。

安装

Swift 4.2

  1. 将 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 添加到您的目标依赖中。
  2. import InstantSearchClient 添加到您的源文件中。

Swift 4.1

  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 添加到您的目标依赖中。
  2. import InstantSearchClient 添加到您的源文件中。

快速入门

在 30 秒内,本快速入门教程将向您展示如何索引和搜索对象。

初始化客户端

首先需要初始化客户端。为此,你需要你的 应用程序IDAPI密钥。你可以在 你的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'

获取帮助