一、写在前面

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:应用程序ID
  • Write 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
2
3
4
algolia:
applicationID: 'Application ID'
apiKey: 'Search API Key'
indexName: 'my_blog_index'
参数说明
applicationID应用ID,即我们上面创建的 algolia 的应用程序ID
apiKeyAPI秘钥,即我们上面创建的 algolia 的应用的搜索API密钥
indexName索引名称,即我们上面创建的 algolia 应用的索引:my_blog_index

7、更新 Algolia Index

在 Hexo 项目的根目录下,运行以下命令来索引博客的内容到 Algolia。

1
2
3
export HEXO_ALGOLIA_INDEXING_KEY=Write API Key
hexo clean
hexo algolia

更新完成,在 Algolia 面板可以看到 发送和管理您的数据 一项已经勾选上,说明数据更新成功。
然后就可以对搜索规则进行配置了。这里我先不配置,按照默认的来,先看看默认的效果。

更新索引这个步骤在更新博客内容之后,都需要执行一遍。因为我是 MacOS 环境,我在博客根目录下新增一个脚本文件 hexo_algolia_auto.sh,将执行命令放到文件中,这样每次更新只需要执行这个文件,即可更新索引。

首次执行,需要赋予执行权限

1
chmod +x hexo_algolia_auto.sh

8、在 Butterfly 中启用 Algolia 搜索

在 Butterfly 的主题配置文件 _config.butterfly.yml 中启用 Algolia 搜索:

1
2
3
4
5
6
7
8
algolia_search:
enable: true
hits:
per_page: 10
labels:
input_placeholder: 搜索文章...
hits_empty: "没有找到相关结果:"
hits_stats: "${hits} results found in ${time} ms"

9、测试

重新生成并部署博客:

1
hexo clean && hexo s -g

访问 http://localhost:4000/ 查看并测试搜索功能。

10、搜索规则

Algolia 管理面板下,应用的索引配置页是这样的

后续再看看是否需要自定义,目前先按默认的来,测试了搜索功能是正常的。

三、参考链接