今天给博客增加了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工程根目录下执行下面的语句。
npm install hexo-algolia --save
在Hexo根目录的
_config.yml
中加入algolia
的配置,注意改成前面API Keys页面相应配置。这里注意apikey填写刚才你创建的那个有权限的,其余的在your api keys里面可以找到
algolia: applicationID: 'your applicationID' apiKey: 'your apiKey' adminApiKey: 'your adminApiKey' indexName: 'your indexName' chunkSize: 5000
上传数据到
algolia
,下面your apiKey替换为刚才自己创建拥有权限的apiexport HEXO_ALGOLIA_INDEXING_KEY=your apiKey hexo algolia
注意这里需要先设置环境变量,否则会报
ERROR [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
网站上查看,索引已经上传成功了。INFO [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
,修改为开启。
algolia_search:
enable: true
以下是我的设置:
algolia_search:
enable: true
hits:
per_page: 10
labels:
input_placeholder: Search for Posts
hits_empty: "我们没有找到任何搜索结果: ${query}"
hits_stats: "找到${hits}条结果(用时${time} ms)"
ok,hexo d -g
!