准备工作

首先你要有一个 Hexo 博客,我配置时的版本是 Hexo v3.9.0 和 NexT.Pisces v7.6.0。

第一步、新建 Algolia 账号

我直接 Github 登录的,然而还是非得填完手机号地址公司名之类的不可,一路 next 到让你建立 index 才算注册完成。

第二步、新建 index 取名

取什么随便,但要记住这个名字,后面要用。

第三步、新建一个 API Key

重点来了
那个什么「Search-Only API Key」,忘了它吧。我们直接新建一个 API Key。

新建API Key
右上角「New API Key」,然后设置,除了第一行是描述,其他行都是「空着不填 = 无限制」,直接看最后一行。

修改访问控制列表
这个 Key 就是你的「API Key」。
也就是 Hexo 的 _config.yml 里填的 apiKey,一会设置的环境变量 HEXO_ALGOLIA_INDEXING_KEY,都是它。

第四步、配置 Hexo

编辑 Hexo 的配置文件 _config.yml,新增

1
2
3
4
5
6
algolia:
applicationID: '你在 algolia 的 Application ID'
apiKey: '第三步里新建的 API Key'
adminApiKey: '你在 algolia 的 Admin API Key'
indexName: '第二步里新建的 index 名字'
chunkSize: 5000

第五步、安装 & 配置 & 运行 hexo-algolia
打开一个 Bash,推荐 Git,运行

1
2
$ npm install --save hexo-algolia
$ set HEXO_ALGOLIA_INDEXING_KEY=你的apiKey # 如果你不是 windows, 把 set 换成 export

这个 apiKey 就是第三步里新建的 API Key

$ hexo algolia
理论上就 OK 了,成功的回显参考

1
2
3
4
5
INFO  [hexo-algolia] Testing HEXO_ALGOLIA_INDEXING_KEY permissions.
INFO Start processing
INFO [hexo-algolia] 23 records to index (post, page).
INFO [hexo-algolia] Indexing chunk 1 of 1 (23 records)
INFO [hexo-algolia] Indexing done.

假如回显类似

1
2
3
4
5
6
INFO  [hexo-algolia] Testing HEXO_ALGOLIA_INDEXING_KEY permissions.
INFO Start processing
INFO [hexo-algolia] 22 records to index (post, page).
INFO [hexo-algolia] Indexing chunk 1 of 1 (22 records)
ERROR [hexo-algolia] Not enough rights to update an object near line:1 column:630
INFO [hexo-algolia] Indexing done.

请回到第三步,确认你是否照着做了。

注意,本地测试hexo a这个时候必须先hexo s把服务跑起来才可以,具体也不知道是为啥

插入吐槽
ERROR [hexo-algolia] Not enough rights to update an object near line 真的卡得我头大
搜到的教程文档基本上都是远古版本,偶尔提到了 ACL(访问控制列表),好,我知道是 ACL,那么 ACL 在哪呢
目前(19.12.12)algolia 自动生成的 Search-Only API Key 是没办法修改 ACL 的,有且只有搜索权限
必须新建一个 API Key 才能编辑 ACL

主要坑就是这个 ACL,还有就是「设定环境变量」这一步有些文档写得真的令人迷惑,后来才发现是一字不动抄的 iissnan 的文档。

https://ews.ink/develop/Enable-Algolia-Search/