为Hexo添加Algolia站内搜索

注册Algolia,创建Index

前往Algolia注册页面,注册一个新账户。可以使用GitHub或者Google账户直接登录,注册后的14天内拥有所有功能(包括收费类别的)。之后若未续费会自动降级为免费账户,免费账户总共有10,000条记录,每月有100,000的可以操作数。注册完成后,创建一个新的Index,这个 Index 将在后面使用。

安装Hexo Algolia

Index创建完成后,此时这个Index里未包含任何数据。接下来需要安装Hexo Algolia扩展,这个扩展的功能是搜集站点的内容并通过API发送给Algolia。前往站点根目录,执行命令安装:

1
npm install --save hexo-algolia

获取Key,更新站点配置

在Algolia服务站点上找到需要使用的一些配置的值,包括ApplicationID, Search-Only API Key, Admin API Key。注意,Admin API Key需要保密保存。点击ALL API KEYS找到新建的Index对应的Key,编辑权限,在弹出框中找到ACL选择勾选Search, Add records, Delete records, List indices, Delete index权限,点击update更新。

  
ACL设置
  

编辑站点配置文件,新增以下配置:这些值除了chunkSize不用修改,其他都可从Algolia网站上API Keys获得:

1
2
3
4
5
algolia:
applicationID: 你的APPID
apiKey: 你的API Key
indexName: 你的Index名字
chunkSize: 5000

更新Index

接着,是最关键,坑最多的一步。

在git bash里面输入以下命令:切记切记要用git bash,因为Windows下无论powershell还是cmd都无法执行export命令。

1
2
export HEXO_ALGOLIA_INDEXING_KEY=你的API Key
hexo algolia

执行以上命令后Index会更新。

主题集成

更改主题配置文件,找到Algolia Search配置部分:

1
2
3
4
5
6
7
8
9
# Algolia Search
algolia_search:
enable: false
hits:
per_page: 10
labels:
input_placeholder: Search for Posts
hits_empty: "We didn't find any results for the search: ${query}"
hits_stats: "${hits} results found in ${time} ms"

将enable改为true即可,根据需要调整labels中的文本。

最终效果

  
站内搜索效果