0%

为Hexo NexT主题集成Algolia搜索

为什么选择Algolia搜索

因为常用的swiftype插件不免费,且Algolia加载数度比Swiftype更快。因为Algolia最近更新了,所以想和大家分享下行的集成过程。

NexT 官网中的过程

NexT第三方服务集成
前面的过程都是一样的,不过hexo-algolia 项目升级了,所以会有点不同。

注册Algolia

Algolia官网注册,可以用 GitHub 或者 Google 账户直接登录,注册后14天是试用期,之后降为普通用户。

安装Hexo Algolia

安装 Hexo Algolia 扩展, 这个扩展的功能是搜集站点的内容并通过 API 发送给 Algolia。前往站点根目录,执行命令安装:
需要 node>=4.0.0

1
npm install --save hexo-algolia

配置站点文件

在根目录_config.yml中新增

_config.yml
1
2
3
4
5
algolia:
applicationID: 'your applicationID'
apiKey: 'your apiKey'
indexName: 'your indexName'
chunkSize: 5000

注意好多教程中还会有一条adminApiKey: 'your adminApiKey',不过原来为了安全,新更新中已经取消了。

在 Algolia 服务站点上找到你自己的值,包括 ApplicationIDSearch API KeyindexName

新版中需要用户重新申请多一个拥有Add records, Delete records, List indices, Delete index权限的API Key,并将其导出为环境变量

输入以下命令

1
export HEXO_ALGOLIA_INDEXING_KEY=NewApiKey

更新Index

在站点根目录下执行,更新 Index

1
hexo algolia

注意观察命令的输出

主题中开启

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

themes/next/_config.yml
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 。