我们的 Android API 客户端是旧版的,并且仅处于维护模式。我们建议使用更适合 Android 开发的 Kotlin API 客户端。
Algolia Search 是一个托管搜索引擎,只需第一次击键即可提供实时结果。
适用于 Android 的 Algolia Search API 客户端可让您从 Android 代码轻松使用 Algolia Search REST API。
注意:如果您使用的是我们的 Android 客户端2.x 版本,请阅读 3.x 版本的迁移指南。
您可以浏览自动生成的参考文档。
该项目是根据 MIT 许可证开源的。
欢迎您的贡献!请使用我们的格式配置来保持编码风格一致。
您可以在 Algolia 网站上找到完整的参考资料。
贡献
安装
快速入门
推送数据
配置
搜索
可用方法列表
寻求帮助
可用方法列表
通过将以下依赖项添加到Gradle
构建文件来安装 Android 客户端:
dependencies {
// [...]
implementation ' com.algolia:algoliasearch-android:3.+ '
// This will automatically update to the latest v3 release when you build your project
}
在 30 秒内,这个快速入门教程将向您展示如何索引和搜索对象。
首先,您需要初始化客户端。为此,您需要您的应用程序 ID和API 密钥。您可以在您的 Algolia 帐户上找到这两个内容。
Client client = new Client ( "YourApplicationID" , "YourAPIKey" );
Index index = client . getIndex ( "your_index_name" );
警告:如果您要在移动设备上构建本机应用程序,请确保不要将搜索 API 密钥直接包含在源代码中。相反,您应该考虑在应用程序启动期间从服务器获取密钥。
无需任何事先配置,您可以使用以下代码开始在contacts
索引中索引联系人:
Index index = client . initIndex ( "contacts" );
index . addObjectAsync ( new JSONObject ()
. put ( "firstname" , "Jimmie" )
. put ( "lastname" , "Barninger" )
. put ( "followers" , 93 )
. put ( "company" , "California Paint" ), null );
index . addObjectAsync ( new JSONObject ()
. put ( "firstname" , "Warren" )
. put ( "lastname" , "Speach" )
. put ( "followers" , 42 )
. put ( "company" , "Norwalk Crmc" ), null );
您可以自定义设置来微调搜索行为。例如,您可以根据关注者数量添加自定义排名,以进一步增强内置相关性:
JSONObject settings = new JSONObject (). append ( "customRanking" , "desc(followers)" );
index . setSettingsAsync ( settings , null );
您还可以按重要性顺序配置要索引的属性列表(最重要的在前)。
注意: Algolia 旨在在您键入时建议结果,这意味着您通常会按前缀进行搜索。在这种情况下,属性的顺序对于决定哪个命中是最好的至关重要。
JSONObject settings = new JSONObject ()
. put ( "searchableAttributes" , "lastname" )
. put ( "searchableAttributes" , "firstname" )
. put ( "searchableAttributes" , "company" );
index . setSettingsAsync ( settings , null );
您现在可以按firstname
、 lastname
、 company
等搜索联系人(即使有拼写错误):
CompletionHandler completionHandler = new CompletionHandler () {
@ Override
public void requestCompleted ( JSONObject content , AlgoliaException error ) {
// [...]
}
};
// Search for a first name
index . searchAsync ( new Query ( "jimmie" ), completionHandler );
// Search for a first name with typo
index . searchAsync ( new Query ( "jimie" ), completionHandler );
// Search for a company
index . searchAsync ( new Query ( "california paint" ), completionHandler );
// Search for a first name and a company
index . searchAsync ( new Query ( "jimmie paint" ), completionHandler );