如何使用脚本将 CSV 上传到 Algolia

How To Upload CSV To Algolia Using A Script

我想使用 PowerShell 脚本上传我的 CSV 文件。如何做到这一点?

我无法在文档中找到任何内容。如果有什么东西应该可以在文档中搜索到。

https://www.algolia.com/doc/

我们目前没有为 PowerShell 编写的示例,但它的步骤如下:

  1. 在 PowerShell 中读取 csv
  2. 将 csv 转换为 JSON
  3. 使用 curl
  4. 推送到 API

但是,通过这种方式,您无法利用 Algolia API 客户端中内置的重试和 DSN 逻辑。您可以使用 API clients 中的任何一个来上传数据。

还有一个节点 CSV toolbox,这是一个用于拆分和上传 csv 文件的 CLI。

您也可以将其上传到仪表板上 described here

我想我会 post 我的解决方案。只需确保安装了 node.js 和 algolia-csv 软件包,然后您就可以从 PowerShell

中 运行 algolia-upload 命令

https://github.com/algolia/algolia-csv-js

NPM 管理器(与 Node 一起打包) https://www.npmjs.com/package/npm

Windows 安装程序 - https://nodejs.org/en/download/

  1. 安装后"node-v6.11.1-x64"打开“node.js命令 通过开始菜单提示“应用程序
  2. 运行以下命令: npm install -g algolia-csv
  3. 现在您可以准备命令了。 (CSV 文件的第一行必须只有 headers)。

选项:algolia-upload $APP_ID $API_KEY $indexName $file|$url [-d $delimiter] [-b $batchSizer] [-- clear-index] [--parse-arrays=$列]

强制参数是应用程序 ID、具有写入权限的密钥、目标索引名称和输入 CSV(本地或可通过 http/https 访问)。

其他参数: -d 让您设置文件中使用的分隔符。这应该用引号引起来。默认为','。 -b 让你设置批量大小。默认值为 10000。 --clear-index 强制在上传新数据前清空索引。 --parse-arrays= 让您指定在上传数据之前是否应使用“,”拆分列值。可以设置多于一列。 --geo-colums=latCol,longCol 让您指定两列用于创建特殊的 algolia 属性 _geoloc

这是我最终用作示例的命令。

algolia-upload APPID APIKEY 索引 PATH.csv

自 2018 年 11 月起,您可以使用 Algolia CLI 从终端轻松导入 JSON 或 CSV 文件:

  • $ npm i -g @algolia/cli
  • $ algolia import -s path/to/your/file.csv -a your_app_id -k your_api_key -n your_index_name