将数据发送到 Algolia 服务器
学习如何使用 API 或 Algolia 控制台发送数据,并通过交互式示例代码了解如何使用 Algolia 的 API 推送数据。
概述
在上一课中,我们讨论了如何设置 Algolia 账户以及如何创建一个新的索引,索引是存放数据的容器。
我们可以使用 API 或 Algolia 控制台将数据推送到 Algolia 服务器。
对于拥有大量记录的客户,通常建议以批量方式发送数据,这样可以减少网络请求次数并加快索引速度。
注意: 为了获得最佳的索引性能,Algolia 建议每次批量处理的数据量在 1,000 到 10,000 条记录之间,具体大小约为 10 MB,具体取决于每条记录的大小。
使用 API
为了让 Algolia 能够搜索我们的数据,我们需要在从数据源(文件、数据库、API 等)获取数据并重新格式化后(例如配置哪些字段可搜索、属性、自定义排序等,这些将在下一课中讨论),将数据发送到 Algolia 服务器。
要将数据推送到 Algolia,你需要 App ID 和 API 密钥,它们允许你创建、更新或删除记录。我们已经在前一课中学习过如何获取密钥。这些凭证将用于初始化 Algolia 客户端,并连接到 Algolia 服务器,对数据执行各种操作。
当数据准备就绪后,可以使用 saveObjects 方法进行推送。
发送数据
1index.saveObjects(records, { autoGenerateObjectIDIfNotExist: true });
saveObjects 方法会用更新后的属性替换已存在的对象(但保留 objectID 不变)。
saveObjects 接受两个参数:
objects:类型为对象数组的变量,必需。requestOptions:类型为键值对的对象,可选,可用于传递请求选项,如autoGenerateObjectIDIfNotExist。autoGenerateObjectIDIfNotExist:布尔类型,可选。建议设为true,表示如果某条记录没有 objectID,则自动分配一个;如果任何对象缺少 objectID,则设为false时会抛出错误。
以下是一个向 Algolia 服务器发送数据的示例:
1// 仅支持搜索的 API 客户端版本,体积更小,专为搜索优化: 2const algoliasearch = require("algoliasearch/lite"); 3require("dotenv").config(); 4 5// 使用 App ID 和 API 密钥初始化 Algolia 客户端(可在下方找到) 6const client = algoliasearch( 7 REACT_APP_ALOGLIA_APP_ID, 8 REACT_APP_ALGOLIA_API_KEY 9); 10 11const index = client.initIndex("dev_SHOP"); 12const records = require("./products.json"); 13 14index 15 .saveObjects(records, { 16 autoGenerateObjectIDIfNotExist: true, 17 }) 18 .then((res) => { 19 console.log(res); 20 });
点击 运行 按钮,然后在终端中输入
node main.js查看输出结果。
使用控制台
你也可以直接通过 Algolia 控制台发送记录,方法包括手动添加记录或上传文件。
手动添加记录
- 进入你的控制台,选择目标索引。
- 点击 管理索引,然后点击 添加记录,再选择 手动添加。
- 将你的数据块复制粘贴到 JSON 编辑器中,然后点击 推送记录。
- 对所有数据块重复此操作。

上传文件
- 进入控制台,选择目标索引。
- 点击 管理当前索引,然后点击 上传文件。
- 点击文件上传区域选择包含数据的文件,或直接拖拽文件到该区域。
- 上传将自动开始。
- 对所有数据块重复此操作。
