本地搜索

当你的博客文章数据不多时,使用 hexo-generator-search 插件给博客添加搜索功能

运行如下命令安装此插件

1
npm install hexo-generator-search --save

在博客配置文件 _config.yml 中添加如下代码

1
2
3
4
search:
path: search.xml
field: post
content: true

在主题配置文件 _config.anzhiyu.yml 中修改以下内容为

1
2
3
4
5
# Local search
local_search:
enable: true
preload: true
CDN:

algolia搜索

但是当你的博客文章数据很多时,这时建议使用第三方的搜索系统,而这里推荐使用Algolia搜索,毕竟对于个人用户来说几乎是免费

algolia提供给个人用户上限1万条索引记录和每月1万次的搜索次数,故对于个人用户来说几乎是无限供应

在使用该搜索功能前需要获取下密钥。通过 Github 来注册 algolia

在注册完后,根据如下步骤来创建一个 Index

接下来就是获取algolia搜索的密钥了。创建拥有一定权限的 api key

进入 All API Keys,点击 New API Keyindices 选择你创建的 IndexACL 按照如下图选择对应的权限,其他均默认即可

点击 Create 就能创建一个 api key

前期已经准备好了,这时后运行如下命令为你的博客安装插件

1
npm install hexo-algoliasearch --save

在博客配置文件 _config.yml 中添加如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
algolia:
appId: "your ApplicationID"
apiKey: "your Search-Only API Key"
adminApiKey: "your Admin API Key"
chunkSize: 5000
indexName: "your indexName"
fields:
- content:strip:truncate,0,500
- excerpt:strip
- gallery
- permalink
- photos
- slug
- tags
- title

在主题配置文件 _config.anzhiyu.yml 中修改以下内容为

1
2
3
4
5
6
7
8
9
# Algolia search
algolia_search:
enable: true
hits:
per_page: 5
labels:
input_placeholder: Search for Posts
hits_empty: "我们没有找到任何搜索结果: ${query}"
hits_stats: "找到${hits}条结果(用时${time} ms)"

每当你需要将一篇文章给放进索引中去时,可以运行 hexo algolia 来将当前博客所有文章数据给覆盖进去