Yufelix's Blog

Yufelix

用 GitHub Actions 自动更新 Algolia 搜索索引

8
2023-03-23

大家好!今天我来分享一下如何用 GitHub Actions 自动更新 Algolia 的搜索索引。如果你有一个博客,并且用 Algolia 来实现搜索功能,可能会遇到一个问题:每次更新博客内容后,手动上传搜索记录数据真的很麻烦。于是,我决定研究一下 Algolia 的 API 和 GitHub Actions,最终实现了自动上传搜索记录的功能。下面就来详细说说这个过程。


GitHub Actions 是什么?

GitHub Actions 是一个超级好用的工具,可以帮你自动化很多工作。比如,你可以用它来自动测试代码、自动部署网站,甚至像我们这里要做的——自动更新 Algolia 的搜索索引。你可以在 GitHub 上找到很多现成的 Actions,也可以自己写一个适合你需求的工作流程。


生成搜索数据

数据格式

首先,我们需要准备好要上传的搜索数据。数据格式大概是这样的:

{
  "content": "这是一段博客内容",
  "lvl0": "博客分类",
  "lvl1": ["标签1", "标签2"],
  "lvl2": "摘要",
  "tags": ["标签1", "标签2", "标签3"],
  "url": "https://你的博客地址",
  "objectID": "唯一ID"
}

这个格式是 Algolia 要求的,你可以根据自己的博客内容来调整。比如,content 是博客的正文,lvl0 是分类,tags 是标签,url 是博客的链接,objectID 是每条记录的唯一标识。


设置 Secrets

为了让 GitHub Actions 能够访问 Algolia,我们需要在 GitHub 上设置一些敏感信息。这些信息包括 Algolia 的应用 ID、管理 API Key 等。千万别把这些信息直接写在代码里,不安全!

怎么设置?

  1. 打开你的 GitHub 仓库。
  2. 点击 Settings,然后选择 Secrets
  3. 点击 New repository secret,添加以下信息:
  • APPLICATION_ID:Algolia 的应用 ID。
  • ADMIN_API_KEY:Algolia 的管理 API Key(这个要保密,不能泄露)。
  • INDEX_NAME:Algolia 的索引名称。
  • FILE_PATH:搜索数据文件的路径(比如 algolia.json)。

新建 GitHub Actions 工作流程

接下来,我们要在 GitHub 上创建一个新的工作流程,用来实现自动上传搜索记录的功能。

步骤:

  1. 在你的项目根目录下,创建一个新文件夹:.github/workflows
  2. 在这个文件夹里,新建一个 YAML 文件,比如 main.yml
  3. main.yml 文件中,写入以下内容:
name: Algolia Upload Records

on:
  [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Upload Records
        uses: getyufelix/Algolia-Upload-Records@main
        env:
          APPLICATION_ID: ${{secrets.APPLICATION_ID}}
          ADMIN_API_KEY: ${{secrets.ADMIN_API_KEY}}
          INDEX_NAME: ${{secrets.INDEX_NAME}}
          FILE_PATH: ${{secrets.FILE_PATH}}

解释一下:

  • name:这个工作流程的名字,随便取一个就行。
  • on:触发条件,这里设置为 push,意思是每次你推送代码到 GitHub 时,这个工作流程就会自动运行。
  • jobs:定义具体的工作任务。我们这里只有一个任务,叫做 build
  • runs-on:指定运行环境,这里用的是 ubuntu-latest,也就是最新的 Ubuntu 系统。
  • steps:具体的工作步骤。第一步是 Checkout,用来拉取代码;第二步是 Upload Records,用来上传搜索记录到 Algolia。

执行过程和结果

当你推送代码到 GitHub 后,GitHub Actions 会自动运行这个工作流程。你可以在 Actions 选项卡里查看工作流程的执行情况。

如果一切顺利,你会看到上传成功的提示,并且返回一些数据记录的 ID。这样,你的 Algolia 搜索索引就自动更新了,再也不用手动上传了!


总结

通过 GitHub Actions,我们可以轻松实现 Algolia 搜索索引的自动更新。整个过程其实并不复杂,只需要准备好数据、设置好 Secrets,然后写一个简单的工作流程就可以了。希望这篇文章对你有帮助!如果你有任何问题,欢迎留言讨论。


本文参考了 ichochy's blog,感谢原作者的分享!