客观来讲,Aloglia是个功能非常不错、服务很完善、后台很强大的搜索服务平台,是一个特别理想的搜索服务,可是她虽阳春白雪,无奈我等身在伟大的墙以内,所以就会遇到很多的问题。
使用Aloglia时不时会报出一些我这等水平的人解决起来嫌麻烦的问题,比如执行hexo algolia
时不时就报错,让你重新export HEXO_ALGOLIA_INDEXING_KEY
,你当然记不住Key了,要么找你的备份记录要么登录Aloglia去取,处理好后,好不容易稳定了一时,之后又会出现这种问题,比较烦人,这就是耍花枪的代价。
如此,只能另觅他途回归简约,果断的启用由 flashlab 贡献的hexo-generator-searchdb部署Local Search本地搜索,结果很完美:本地化无后端、高效、全文搜索,这意味着什么呢?
- 你的搜索不再依赖第三方服务的挂与不挂掉。
- 你可以不用每次更新文章后还要
hexo algolia
。 - 你只是不能掌握对你Blog进行检索的相关数据而已,这个一点都不重要。
部署和启用Local Search,参考NexT文档一步步来就可以,过程比部署Algolia会简单一些。
安装
hexo-generator-searchdb
,在站点的根目录下执行以下命令:1
$ npm install hexo-generator-searchdb --save
执行结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14$ cd taoblog
$ npm install hexo-generator-searchdb --save
npm WARN deprecated ejs@1.0.0: Critical security bugs fixed in 2.5.5
npm WARN babel-eslint@10.0.2 requires a peer of eslint@>= 4.12.1 but none is installed. You must install peer dependencies yourself.
+ hexo-generator-searchdb@1.0.8
added 3 packages from 3 contributors in 5.674s
╭────────────────────────────────────────────────────────────────╮
│ │
│ New minor version of npm available! 6.10.3 → 6.11.3 │
│ Changelog: https://github.com/npm/cli/releases/tag/v6.11.3 │
│ Run npm install -g npm to update! │
│ │
╰────────────────────────────────────────────────────────────────╯编辑
站点
配置文件,新增以下内容到任意位置:1
2
3
4
5search:
path: search.xml
field: post
format: html
limit: 10000编辑
next主题
配置文件,启用本地搜索功能:1
2
3# Local search
local_search:
enable: trueNexT主题配置文件中
Local search
字段的默认内容如下,将enable
改为true1
2
3
4
5
6
7
8
9# Local search
# Dependencies: https://github.com/flashlab/hexo-generator-search
local_search:
enable: false
# if auto, trigger search by changing input
# if manual, trigger search by pressing enter key or search button
trigger: auto
# show top n results per article, show all results by setting to -1
top_n_per_article: 1
到此这个工作就顺利完成了!