博客搭建之路:hexo增加搜索功能

hexo增加搜索功能

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

作为一个博客,没有搜索功能,如何在大批文章中找到自己想要的,那在hexo中如何增加搜索功能呢?

yml 复制代码
search:
  path: search.json
  field: post

在博客目录下安装npm install hexo-generator-search --save,此时使用hexo cl && hexo g就会在博客public目录下生成一个search.json,在使用hexo d部署上去搜索就可以用了

本地搜索弊端

前期还好,后来随着我的文章越来越多,search.json文件已经达到了十几M,每次加载页面都需要花费几分钟来加载search.json文件,使用体验很不好

algolia搜索

本地搜索走不通,那就只能使用远程搜索了,还好hexo提供了algolia搜索

先去官网登录一下,这里我使用的是Github登录,然后新建一个Index

创建Index后,右上角头像处点击选择Settings

查看ApiKeys

_config.yml中配置algolia

yml 复制代码
algolia:
  applicationID: #对应Application ID
  apiKey: # 对应Search-Only API Key
  adminApiKey: # Admin API Key
  indexName: # 创建的那个索引名称

还需要在环境变量中配置HEXO_ALGOLIA_INDEXING_KEY 值为 页面中Admin API Key的值

在博客目录下安装npm install hexo-algolia --save

之后修改使用的主题下(我使用的是next主题)的_config.yml,配置使用algolia搜索

yml 复制代码
algolia_search:
  enable: true # 开始algolia搜索
  hits:
    per_page: 10
  labels:
    input_placeholder: 查询
    hits_empty: "没有找到任何相关结果: ${query}"
    hits_stats: " ${time} ms内找到 ${hits} 条结果"

# Local Search
# Dependencies: https://github.com/theme-next/hexo-generator-searchdb
local_search:
  enable: false #关闭本地搜索

此时执行hexo algolia就会将博客生成的search发送到algolia中,而部署的博客就可以搜索到所上传的内容

这里有一个小问题,在执行hexo algolia时,algolia会多条合并进行提交,而免费的algolia会有大小的限制,可以看到超过10000字节就不行了,algolia默认会50条合并提交,可以设置几条进行合并

使用chunkSize来设置条数,如hexo algolia --chunkSize 10 就是10条合并

每次都指定参数还是挺麻烦的,看一下algolia中是怎么写的吧。

发现在node_modules/hexo-algolia/lib/command.js中有一个默认配置

yaml 复制代码
var CONSOLE_DEFAULTS = {
  dryRun: false,
  flush: false,
  chunkSize: 50,
  layouts: INDEXED_LAYOUTS
};

设置的chunkSize是50,我由于正文内容比较多,改成了3,这样就不需要每次都带参数了

参考文献

相关推荐
SimonKing1 小时前
144K Star的开源神器,OpenCode进阶使用全攻略
java·后端·程序员
人邮异步社区1 小时前
如何自学游戏引擎的开发?
unity·程序员·游戏引擎
刀法如飞2 小时前
2026年,程序员面临的转型之路
程序员·agent·ai编程
小流苏生2 小时前
工作十年了,慢慢学习敬畏死亡
前端·程序员·ai编程
小兵张健12 小时前
强程序员在 AI 时代的赚钱路径
程序员·openai
程序员鱼皮1 天前
CLI 是什么?为什么大厂突然集体卷命令行?
ai·程序员·编程·ai编程·vibe coding
小兵张健1 天前
从 Playwright MCP 到 Playwright CLI
程序员·openai·mcp
嵌入式小企鹅2 天前
DeepSeek-V4昇腾首发、国芯抗量子MCU突破、AI编程Agent抢班夺权
人工智能·学习·ai·程序员·算力·risc-v
阿里嘎多学长2 天前
2026-04-17 GitHub 热点项目精选
开发语言·程序员·github·代码托管