在 Hexo + Butterfly 下使用 Algolia 搜索插件
一、写在前面
从 Butterfly 文档 可以看到,Butterfly 支持多种搜索方式:Algolia、本地搜索 和 DocSearch。这里我选择 Algolia,使用 hexo-algolia 插件。
二、配置步骤
1、安装 hexo-algolia 插件
在博客的站点根目录下,运行以下命令来安装
1 | npm install --save hexo-algolia |
2、创建 Algolia 账号
algolia 提供多种 登录 方式这里我选择 GitHub 的登录方式。
algolia 提供多种 付费方案。
其中 免费版
的话有限制:
- 每月最多
10000
个搜索请求; - 包含
100万
条记录;
本着能白嫖绝对不花钱的互联网精神,这里我选择免费版本,对我来说,目前是够用的。
3、创建 Algolia 应用
上面登录完成后,似乎会默认创建一个 应用。
这里我重新创建一个。地区没有 中国大陆 的选项,我就按照默认的来
创建应用的过程没有让我输入应用名,需要自行在 Applications 中进行改名,这里我命名为 my_blog_app。
应用创建完毕,可以得到三个应用参数
Application ID
:应用程序IDWrite API Key
:写入API密钥Search API Key
:搜索API密钥
4、创建应用的索引
创建应用的 index ,即 索引。用于存储要在 algolia 中可搜索的数据。这里我取名为 my_blog_index。
5、设置环境变量
将上面获取的 Write API Key 配置到本地的环境变量中,变量名为 HEXO_ALGOLIA_INDEXING_KEY。我是 MacOS 环境,可以将其配置到 .bash_profile文件下。也可以只在执行时 export。我选择在执行
hexo clean && hexo algolia` 之前执行:
1 | export HEXO_ALGOLIA_INDEXING_KEY=Write API Key |
6、配置 Hexo 站点
在 Hexo 项目的根目录下的 _config.yml 配置文件中,添加 algolia 配置:
1 | algolia: |
参数 | 说明 |
---|---|
applicationID | 应用ID,即我们上面创建的 algolia 的应用程序ID |
apiKey | API秘钥,即我们上面创建的 algolia 的应用的搜索API密钥 |
indexName | 索引名称,即我们上面创建的 algolia 应用的索引:my_blog_index |
7、更新 Algolia Index
在 Hexo 项目的根目录下,运行以下命令来索引博客的内容到 Algolia。
1 | export HEXO_ALGOLIA_INDEXING_KEY=Write API Key |
更新完成,在 Algolia 面板可以看到 发送和管理您的数据 一项已经勾选上,说明数据更新成功。
然后就可以对搜索规则进行配置了。这里我先不配置,按照默认的来,先看看默认的效果。
更新索引这个步骤在更新博客内容之后,都需要执行一遍。因为我是 MacOS 环境,我在博客根目录下新增一个脚本文件 hexo_algolia_auto.sh,将执行命令放到文件中,这样每次更新只需要执行这个文件,即可更新索引。
首次执行,需要赋予执行权限
1 | chmod +x hexo_algolia_auto.sh |
8、在 Butterfly 中启用 Algolia 搜索
在 Butterfly 的主题配置文件 _config.butterfly.yml 中启用 Algolia 搜索:
1 | algolia_search: |
9、测试
重新生成并部署博客:
1 | hexo clean && hexo s -g |
访问 http://localhost:4000/ 查看并测试搜索功能。
10、搜索规则
Algolia 管理面板下,应用的索引配置页是这样的
后续再看看是否需要自定义,目前先按默认的来,测试了搜索功能是正常的。