@nativescript-community/algolia
Algolia 搜索的 NativeScript 插件。此插件旨在尽可能模仿 Algolia 的 JavaScript 客户端结构。
npm i --save @nativescript-community/algolia
- 版本:2.0.2
- GitHub: https://github.com/nativescript-community/algolia
- NPM: https://npmjs.net.cn/package/%40nativescript-community%2Falgolia
- 下载
- 前一天:0
- 上周:0
- 上个月:0
@nativescript-community/algolia
Algolia 搜索的 NativeScript 插件。此插件旨在尽可能模仿 Algolia 的 JavaScript 客户端结构。
目录
安装
从您项目的根目录运行以下命令
ns plugin add @nativescript-community/algolia
初始化客户端
您首先需要初始化客户端。为此,您需要您的 应用程序 ID 和 API 密钥。您可以在您的 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 start
或 pnpm 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 中进行对话。