前言

本站基于Hexo搭建,用的 🦋 hexo-theme-butterfly 主题 v4.13.0

为本地搜索,会生成对应的本地搜索文件,打开页面搜索框时下载该文件,因为存在时延问题这里不推荐该方式

Algolia(推荐)

关于 Algolia 搜索功能,这里有两种插件,一个是 hexo-algolia ,一个是 hexo-algoliasearch。第一种亲测只能对匹配文章title,不能匹配文章内容查询到结果,所以推荐第二种。下面只做推荐的配置。

image-20240902121426345

获取 Algolia 账号

  1. 注册 Algolia。
    进入Sign in | Algolia 注册,也可以直接用Github授权登录。
image-20240902121531957
  1. 新建 Index
image-20240902121852953
  1. 创建拥有一定权限的api key(如果选择第二种插件,可忽略这一步)。
    进入【Settings > API Keys】。
image-20240902122007136

进入【All API Keys > API Keys】,点击【New API Key】。在ACL里面增加删除和新增Object的权限(按理说只用这两个权限就行,下图中我多加了几个),然后填上 indices 栏目中的 index name ,选刚才你创建的那个index,其余默认就行。

image-20240902122237045 image-20240902122307862

点击【Create】,这样就得到了一个 api key。注意一下,这个key将会在下面的步骤中用到。

安装依赖 && 写入配置

hexo-algoliasearch(推荐)

  1. 安装 Algolia 依赖。
    前往博客根目录,打开cmd命令窗口执行npm install hexo-algoliasearch --save

    npm install hexo-algoliasearch --save
  2. 注入配置。
    修改站点配置文件_config.yml,添加如下代码:

    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
    image-20240902122528280

    【applicationID】填入图中位置的 Applicaiton ID,【apiKey】填入图中位置的 Search-Only API Key ,【Admin API Key】填入图中位置的 Admin API Key ,【indexName】填入前面创建的索引名称。

  3. 执行hexo algolia
    前往博客根目录,打开cmd命令窗口执行hexo algolia

    hexo algolia
  4. 主题中写入 Alogolia 配置项。
    在主题配置文件_config.butterfly.yml中修改以下内容:

    algolia_search:
    enable: true
    hits:
    per_page: 10
    labels:
    input_placeholder: Search for Posts
    hits_empty: "我们没有找到任何搜索结果: ${query}"
    hits_stats: "找到${hits}条结果(用时${time} ms)"
  5. 重新编译运行,即可看到效果。
    前往博客根目录,打开cmd命令窗口依次执行如下命令:

    hexo cl && hexo generate
    hexo s -p 8000