当前位置: 首页 > news >正文

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


文章目录

    • hexo增加搜索功能
      • 本地搜索弊端
      • algolia搜索


hexo增加搜索功能

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

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

search:path: search.jsonfield: 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

ApiKey

查看ApiKeys

ApiKeys

_config.yml中配置algolia

algolia:applicationID: #对应Application IDapiKey: # 对应Search-Only API KeyadminApiKey: # Admin API KeyindexName: # 创建的那个索引名称

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

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

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

algolia_search:enable: true # 开始algolia搜索hits:per_page: 10labels: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中有一个默认配置

var CONSOLE_DEFAULTS = {dryRun: false,flush: false,chunkSize: 50,layouts: INDEXED_LAYOUTS
};

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

参考文献

  • hexo增加搜索功能

相关文章:

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

文章目录 hexo增加搜索功能本地搜索弊端algolia搜索 hexo增加搜索功能 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 作为一个博客,没有搜索功能,如何在大批文章中找到自己想要的,那在hexo中如何增加搜索功能呢? search:path: sea…...

2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis、微服务、分布式、ES、设计模式)

前言 春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸…...

MybatisPlus入门(一)MybatisPlus简介

一、MyBatis简介 MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 - 官网:https://mybatis.plus/ https://mp.baomidou.com/ MyBatisPlus特性: - 无侵入:只做增强…...

QoS学习笔记

QoS业务分类 基于 DiffServ 服务模型的 QoS 业务可以分为以下几大类: 流分类和标记(Traffic classification and marking):要实现差分服务,需要首先将数据包分为不同的类别或者设置为不同的优先级。将数据包分为不同…...

图(邻接矩阵)知识大杂烩!!(邻接矩阵结构,深搜,广搜,prim算法,kruskal算法,Dijkstra算法,拓扑排序)(学会一文让你彻底搞懂!!)

小伙伴们大家好,今天给大家带来图(邻接矩阵)的各种知识,让你看完此文章彻底学会邻接矩阵的相关问题。 1.邻接矩阵表示方法 1.1知识讲解 我们用一个二维数组arr来表示图。若图为有向图,其中arr【i】【j】w表示i号点和…...

Prometheus自定义PostgreSQL监控指标

本文我们将介绍如何在Prometheus中创建自定义PostgreSQL指标。默认情况下由postgres_export运行的查询可能不能满足用户需求,但我们可以创建自定义查询,并要求postgres_exporter公开自定义查询的结果。postgres_exporter最近被移到了Prometheus Communit…...

400行程序写一个实时操作系统(十六):操作系统中的调度策略

前言 在前面我们完成了Sparrow的临界区的代码,使用临界区,能够解决常见的并发问题,现在该完善我们的调度算法了。 调度算法在操作系统领域常常是热门的话题。不同的用途将会使用不同的调度策略。在本节,笔者将为大家介绍一些操作…...

从安灯系统看汽车零部件工厂的智能制造转型

在当今快速发展的制造业领域,汽车零部件工厂正面临着日益激烈的市场竞争和不断提高的客户需求。为了在竞争中脱颖而出,实现可持续发展,许多汽车零部件工厂纷纷踏上智能制造转型之路。而安灯系统作为一种重要的生产管理工具,在这场…...

SwiftUI(三)- 渐变、实心形状和视图背景

引言 在现代的应用的UI设计中,渐变和形状背景为界面带来了丰富的层次与视觉效果,而SwiftUI提供了一系列简单且强大的API,可以轻松实现这些效果。在这篇文章中,我们将介绍SwiftUI中的渐变、实心形状和视图背景的基础用法&#xff…...

RK3568-ota升级

ota升级 OTA(Over-the-Air)即空间下载技术。 OTA 升级是 Android 系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过网络,例如 WIFI、3G/4G 自动下载 OTA 升级包、自动升级,也支持通过…...

GR-ConvNet代码详解

GR-ConvNet代码详解 文章目录 GR-ConvNet代码详解前言一、utils1.dataset_processing1.image.py1.Iamge类2.DepthImage类3.WidthImage类 2.grasp.py1. _gr_text_to_no()方法2.GraspRectangles类3.GraspRectangle类3.Grasp类4.detect_grasps方法 3.generate_cornell_depth.py4.e…...

Excel自带傅里叶分析数据处理——归一化处理

在Excel工具中,默认情况下数据处理---傅里叶分析通常不进行归一化处理,需要用户手动进行归一化处理。 (1)傅里叶变换的原理 傅里叶变换将时域信号转换为频域信号,输出的是复数形式的频率分量,包含了幅值和…...

Centos7.6版本安装mysql详细步骤

操作步骤: 1.下载Linux版本Mysql并上传至linux系统中 2.解压mysql并查询系统中是否有相关软件存在以及配置mysql,启动mysql tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz rpm -qa|grep mysql ##查…...

寄宿学校:为自闭症儿童提供全面的教育和关爱

在这个多彩的世界里,每一个生命都值得被温柔以待,每一颗心灵都值得被悉心呵护。然而,自闭症儿童这一特殊群体,他们的世界却常常被误解和忽视。幸运的是,有一种教育模式——寄宿学校,正为这些孩子打开了一扇…...

LLaMA Factory环境配置

LLaMA-Factory官方文档 安装正确的torch和cuda版本 参考: PyTorch 报错解决 1.ImportError: /usr/lib/x86_64-linux-gnu/libstdc.so.6: version GLIBCXX_3.4.29 not found 参考这个解决:丝滑解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc.s…...

STM32实现毫秒级时间同步

提起“时间同步”这个概念,大家可能很陌生。一时间搞不清楚是什么意思。 我理解“时间同步”可以解决多个传感器采集数据不同时的问题,让多个传感器同时采集数据。 打个比方。两个人走路,都是100毫秒走一步(频率相同是前提&…...

瑞吉外卖之com.fasterxml.jackson.dataformat.cbor.CBORFactor相关报错

1.报错:Error creating bean with name routerFunctionMapping defined in class path resource [com/itheima/reggie/config/WebMvcConfig.class]: Failed to instantiate [org.springframework.web.servlet.function.support.RouterFunctionMapping]: Factory met…...

CSS - grid制作表格

1. grid-template-columns:网格布局中的列的数量,也可以设置列的宽度 .grid-container {display: grid;grid-template-columns: 80px 200px auto 40px; }.grid-container {display: grid;grid-template-columns: auto auto auto auto;//表示所有列的宽度…...

【pip】 的换源(临时换源和永久换源)

【pip】 的换源(临时换源和永久换源) 一、临时换源二、永久换源三、Linux换源四、Windows换源 一、临时换源 临时换源只需要在pip安装包时,加上一个-i参数后接源的url即可: 临时换源: 清华源 pip3 install markdown…...

Kaggle 数据集dogs-vs-cats的错误

如果你想用kaggle数据集dogs-vs-cats做深度学习数据,可能会遇到数据bug,大概类似于下面的错误: UnidentifiedImageError: cannot identify image file 其原因不是你的程序有问题,而是数据集本身还有bug: cats/666.jpgdogs/11702.jpg 预览一下…...

Visual C++运行库合集(vcredist)深度解析与高级部署方案

Visual C运行库合集(vcredist)深度解析与高级部署方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C运行库合集(vcredist)是解决Windows系统依赖问题的…...

利用OpenClaw与gws CLI构建AI Agent的Google Workspace自动化技能

1. 项目概述与核心价值最近在折腾AI智能体(AI Agent)的自动化工作流,发现一个痛点:想让Agent帮我处理Gmail邮件、整理Google Drive文件或者安排Calendar日程,往往需要自己写一堆API集成代码,不仅麻烦&#…...

微信社交圈净化实战:如何识别并清理单向好友关系

微信社交圈净化实战:如何识别并清理单向好友关系 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 你是…...

iOS 27 开放 AI 生态,长距高清传输新引擎 @ACP#GSV5800 筑牢 iPhone AI 显示后端底座

一、iOS 27 开放 AI:引爆高清长距传输与多接口扩展刚需苹果 iOS 27 系统全面开放第三方 AI 模型自由切换,支持 Claude、Gemini、DeepSeek 等主流大模型深度接入,iPhone/iPad 一跃成为全球最大 AI 交互与视觉输出入口。这一变革直接引爆AI 扩展…...

3个步骤掌握Sketch MeaXure:设计师与开发者的终极协作桥梁

3个步骤掌握Sketch MeaXure:设计师与开发者的终极协作桥梁 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 你是否厌倦了在Sketch中手动测量每个元素、反复截图标注的日子?Sketch MeaXure正是为解…...

Yeti社区插件生态解析:如何利用现有资源快速扩展平台功能

Yeti社区插件生态解析:如何利用现有资源快速扩展平台功能 【免费下载链接】yeti Your Everyday Threat Intelligence 项目地址: https://gitcode.com/gh_mirrors/ye/yeti Yeti作为一款强大的威胁情报平台(Your Everyday Threat Intelligence&…...

从AMD Ryzen数据误读看硬件市场分析:如何辨别数据信号与噪声

1. 从一则旧闻谈起:数据解读的陷阱与行业洞察2017年7月,一则关于AMD Ryzen处理器市场份额的新闻在科技圈引发了不小的讨论。当时,多家媒体援引第三方基准测试软件Passmark的数据,宣称AMD凭借新发布的Ryzen架构,正在从英…...

TTS推理优化:低精度计算与硬件协同设计实践

1. 项目概述:TTS推理的经济学重构在语音技术领域,文本转语音(TTS)系统正从实验室走向生产环境,成为智能助手、无障碍工具和实时通信系统的核心组件。与大型语言模型(LLM)不同,TTS需要…...

FuSa DFMEA在芯片验证中的借鉴价值

功能安全(Functional Safety, FuSa)领域的DFMEA(Design Failure Mode and Effects Analysis,设计失效模式与影响分析)是一种以预防为主的系统化、结构化风险管理方法,它通过分析失效模式并优化来降低风险。…...

CANN/GE获取模型输出名称

aclmdlGetOutputNameByIndex 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch…...