@nativescript-community/algolia
Algolia 搜索的 NativeScript 插件。此插件旨在尽可能模仿 Algolia 的 JavaScript 客户端结构。
npm i --save @nativescript-community/algolia

@nativescript-community/algolia

Downloads per month NPM Version

Algolia 搜索的 NativeScript 插件。此插件旨在尽可能模仿 Algolia 的 JavaScript 客户端结构。


目录

安装

从您项目的根目录运行以下命令

ns plugin add @nativescript-community/algolia

初始化客户端

您首先需要初始化客户端。为此,您需要您的 应用程序 IDAPI 密钥。您可以在您的 Algolia 账户 中找到它们。

import { Algolia } from "@nativescript-community/algolia";

const client = new Algolia('APP_ID', 'API_KEY');
const index = client.initIndex('items');

推送数据

添加或替换索引中现有的对象,使用一组更新后的属性。

const contacts = [
{
objectID: "1234567890",
firstname: "John",
lastname: "Smith",
zip_code: 78787
},
{
objectID: "987654321",
firstname: "Billy",
lastname: "Bob",
zip_code: 54321
},
];

index.addObjects(contacts)
.then(result => {
console.log(result);
})
.catch(error => {
console.log("ERROR!", error);
});

简单搜索

在索引中添加对象后,您现在可以利用搜索功能。

index.search("bob")
.then(content => {
console.log(content.hits)
})
.catch(error => {
console.log("ERROR", error)
});

高级搜索

还可以传递搜索参数进行更高级的搜索,例如地理位置。请参阅可用的搜索参数 此处

index.search("", {
aroundLatLng: "38.846693, -104.861354",
aroundRadius: 200000 // meters
})
.then(content => {
console.log(content.hits);
})
.catch(error => {
console.log("ERROR", error);
});

配置

设置可以自定义以调整搜索行为。例如,您可以将按关注者数量排序的排序添加到内置的相关性中

index.setSettings({
customRanking: ['desc(firstname)']
})
.then(result => {
console.log("Setting saved", result);
})
.catch(error => {
console.log("ERROR", error);
});

您还可以按重要顺序配置您想要索引的属性列表(例如:姓名 = 最重要)

注意:由于该引擎旨在在您键入时提供结果,因此您通常将按前缀搜索。在这种情况下,属性的顺序对于决定哪个命中是最重要的非常重要

index.setSettings({
searchableAttributes: [
'lastname',
'firstname',
'company',
'email',
'city',
'address'
]
})
.then(result => {
console.log("Setting saved", result);
})
.catch(error => {
console.log("ERROR", error);
});

版本 2 的重大更改

改为基于 Promise 的方法调用,而不是回调。

之前:

index.search('bob', function(content, err) {
console.log(content.hits);
});

之后:

index.search("bob")
.then(content => {
console.log(content.hits)
})
.catch(error => {
console.log("ERROR", error)
});

方法 addObjects 现已弃用,并已被 saveObjects 替换。

演示和开发

设置

要运行演示,您必须递归地克隆此存储库。

git clone https://github.com/@nativescript-community/algolia.git --recursive

安装依赖项

npm i # or 'yarn install' or 'pnpm install'

交互式菜单

要启动交互式菜单,请运行 npm start(或 yarn startpnpm start)。这将列出所有常用脚本。

构建

npm run build

npm run build.angular # or for Angular

演示

npm run demo.[ng|react|svelte|vue].[ios|android]

npm run demo.svelte.ios # Example

问题

如果您有任何问题/问题/评论,请随时创建一个问题或开始在 NativeScript 社区 Discord 中进行对话。