今天给博客增加了algolia站内搜索功能,中途有个地方整了半天,现在把遇到的坑填了。
功能预览:
注册algolia
官网注册:https://www.algolia.com/ ,或者直接用GitHub账号登陆,登陆地址: https://www.algolia.com/users/sign_in 我就是用GitHub账号登陆的
左侧侧边栏找到API Keys,进入后,点击ALL API Keys(这点比较重要,因为前面的API不可用,要自己新建一个拥有增加删除权限的api key)
点开新增api keys后,如上图所示,重要的是在ACL里面增加删除和新增Object的权限(按理说只用这两个权限就行,我加了好多,如上上图所示),然后填上indices栏目中的index name,可以选刚才你创建的那个index,其余默认就行。
这样你就有了一个api key(如红框马赛克),保存好,后面要用的。
安装algolia搜索功能
在Hexo工程根目录下执行下面的语句。
1
npm install hexo-algolia --save
在Hexo根目录的
_config.yml
中加入algolia
的配置,注意改成前面API Keys页面相应配置。这里注意apikey填写刚才你创建的那个有权限的,其余的在your api keys里面可以找到
1
2
3
4
5
6algolia:
applicationID: 'your applicationID'
apiKey: 'your apiKey'
adminApiKey: 'your adminApiKey'
indexName: 'your indexName'
chunkSize: 5000上传数据到
algolia
,下面your apiKey替换为刚才自己创建拥有权限的api1
2export HEXO_ALGOLIA_INDEXING_KEY=your apiKey
hexo algolia注意这里需要先设置环境变量,否则会报
1
2ERROR [Algolia] Please set an `HEXO_ALGOLIA_INDEXING_KEY` environment variable to enable content indexing.
ERROR >> Read https://npmjs.com/hexo-algolia#api-key for more informations.看到如下信息,证明成功了,可以去
algolia
网站上查看,索引已经上传成功了。1
2
3
4
5INFO [Algolia] Testing HEXO_ALGOLIA_INDEXING_KEY permissions.
INFO Start processing
INFO [Algolia] Identified 5 pages and posts to index.
INFO [Algolia] Indexing chunk 1 of 1 (50 items each)
INFO [Algolia] Indexing done.
到Hexo开启algolia
我使用的Next主题,开启只需要一步,到主题目录下的_config.yml
,修改为开启。
1 | algolia_search: |
以下是我的设置:
1 | algolia_search: |
ok,hexo d -g
!