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

Algolia - Docsearch的申请配置安装【以踩坑解决版】

👨‍🎓博主简介

  🏅CSDN博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

    • 简述
    • 配置
    • 注册
    • 使用
      • 官方申请
      • 申请成功发送邮件
      • 调试爬取
      • 网站测试搜索
    • 配置完成 - 总结回顾

推荐我的网站此文章:https://liuchenyang.top/document/other/docsearch.html

简述

文档参考:

  • VitePress官方
  • VuePress 不用Algolia 全文搜索那就缺了灵魂

结合自己操作记录来修改成vuepress-theme-hope主题的docsearch配置。

其实也有很多热门的爬虫搜索引擎,而Algolia的 Algolia DocSearch 是直接集成在VuePress中的,我们来看看有多么强大吧。

配置

这里配置的是vuepress主题的,最新版Hope主题自带algolia插件,无需安装,请在theme.ts里定位到plugins设置。

  • 插件版本注意事项

如果不是最新版本,在安装@vuepress/plugin-docsearch插件的时候需要适配当前版本,具体是如何适配自己的版本不确定,只能在package.json配置文件中去修改版本号来试,然后我安装了个70版本的,但是配置好之后搜索有点问题,问题:搜索的结果无法点击,然后我就一点一点往上升级到了rc74的版本,就可以了,指定升级插件版本命令为:pnpm add -D @vuepress/plugin-docsearch@2.0.0-rc.74,安装的时候会自动删除原版本更新成配置文件中指定的版本或指定下载的版本,如果安装好访问页面空白的话,大概率就是版本的问题。

  plugins: {docsearch:({appId: "<APP_ID>",apiKey: "<API_KEY>",indexName: "<INDEX_NAME>",locales: {"/": {placeholder: "搜索文档",translations: {button: {buttonText: "搜索文档",buttonAriaLabel: "搜索文档",},modal: {searchBox: {resetButtonTitle: "清除查询条件",resetButtonAriaLabel: "清除查询条件",cancelButtonText: "取消",cancelButtonAriaLabel: "取消",},startScreen: {recentSearchesTitle: "搜索历史",noRecentSearchesText: "没有搜索历史",saveRecentSearchButtonTitle: "保存至搜索历史",removeRecentSearchButtonTitle: "从搜索历史中移除",favoriteSearchesTitle: "收藏",removeFavoriteSearchButtonTitle: "从收藏中移除",},errorScreen: {titleText: "无法获取结果",helpText: "你可能需要检查你的网络连接",},footer: {selectText: "选择",navigateText: "切换",closeText: "关闭",searchByText: "搜索提供者",},noResultsScreen: {noResultsText: "无法找到相关结果",suggestedQueryText: "你可以尝试查询",reportMissingResultsText: "你认为该查询应该有结果?",reportMissingResultsLinkText: "点击反馈",},},},},},}),},

注册

由于配置还缺关键Key,所以还需要注册账号,也方便我们后期对数据进行管理

进入 Algolia官网 ,点击 Login 注册账号

可以选择 NO ACCOUNT YET? ,也可以直接用GitHub和谷歌账号关联注册

注册比较简单,就不讲了

网站打不开,挂一个梯子即可

使用

请按自己的需求,参照下面教程,选其一使用

使用方式区别说明
官方申请
申请时需要提交链接、邮箱及仓库(可选) ,等待周期较长,通过后会自动爬取,直接配置使用即可
Docker
需自备服务器且安装好docker,有一定动手能力,需要每次手动爬取。步骤繁琐本次不做演示
Github Actions
准备一个公开或者私密的仓库,配置好爬虫数据的格式,Actions自动爬取

官方申请

直接在 DocSearch官网,点 Apply 申请

打开后填写网站地址、邮箱和仓库地址(可选)等信息,然后勾选上下面三项,并提交即可。

等待跳转成功就好,没有跳转,就挂个梯子

之后就静待邮件,最快等待6-7小时,慢则半个多月,在邮件中会给我们一个邀请链接,复制并打开。
官方邮箱地址:support@algolia.com

申请成功发送邮件

申请成功之后,将邮件中的addIdapiKeyindexName值放到项目配置中。

就这么简单么,so easy !当你以为一切顺利万事大吉的时候,然而,很可能你的全文搜索还不可以用。可能一搜还都是找不到结果,那这是为何呢,文章还未结束,配置还在进行,且往下看!

调试爬取

然后我们登陆 https://dashboard.algolia.com/apps/DJTP2DCRA4/dashboard 打开管理后台,点击左侧选项栏里的 Search,进去后会有个弹窗按钮,点 Accept 接受即可

没有弹窗的,去邮箱复制邀请链接打开应该就有了;

这样就自动完成了Application创建;

然后查看对应的 index 数据,如果 Browse 这里没有显示数据,那需要点击这里的刷新看看,有数据即可;
如果刷新之后如果还是没有显示数据,那说明爬取的数据可能有问题,导致没有生成对应的 Records


这个时候要使用官方工具进行调试,进入调试工具地址,打开调试台,点击进入爬虫详情;

进来之后在点击 Overview 菜单,发现爬虫数据是有的,但 Records 为 0,那大概是爬虫提取数据的逻辑有问题;

点击左侧选项栏中的 Editor,查看具体的爬虫逻辑,可以根据 vuepress 官方提供的模版参考查看问题:vuepress官方爬虫配置,这里我是直接整个复制粘贴成官方的然后进行个别地方修改就可以了;

除了指定位置,其他不要乱改,特别是apikey不要改!和你申请的apikey不是同一个用途

如果你网址有别名解析或者重定向了,也只能用你申请时的网址

  • 官方爬虫设置
new Crawler({appId: "YOUR_APP_ID",apiKey: "YOUR_API_KEY",rateLimit: 8,startUrls: [// 这是 Algolia 开始抓取网站的初始地址// 如果你的网站被分为数个独立部分,你可能需要在此设置多个入口链接"https://YOUR_WEBSITE_URL/",],sitemaps: [// 如果你在使用 Sitemap 插件 (如: @vuepress/plugin-sitemap),你可以提供 Sitemap 链接"https://YOUR_WEBSITE_URL/sitemap.xml",],ignoreCanonicalTo: false,exclusionPatterns: [// 你可以通过它阻止 Algolia 抓取某些 URL],discoveryPatterns: [// 这是 Algolia 抓取 URL 的范围"https://YOUR_WEBSITE_URL/**",],// 爬虫执行的计划时间,可根据文档更新频率设置schedule: "at 02:00 every 1 day",actions: [// 你可以拥有多个 action,特别是你在一个域名下部署多个文档时{// 使用适当的名称为索引命名indexName: "YOUR_INDEX_NAME",// 索引生效的路径pathsToMatch: ["https://YOUR_WEBSITE_URL/**"],// 控制 Algolia 如何抓取你的站点recordExtractor: ({ $, helpers }) => {// 以下是适用于 vuepress-theme-hope 的默认选项选项return helpers.docsearch({recordProps: {lvl0: {selectors: [".vp-sidebar-link.active", "[vp-content] h1"],defaultValue: "Documentation",},lvl1: "[vp-content] h1",lvl2: "[vp-content] h2",lvl3: "[vp-content] h3",lvl4: "[vp-content] h4",lvl5: "[vp-content] h5",lvl6: "[vp-content] h6",content: "[vp-content] p, [vp-content] li",},recordVersion: "v3",});},},],initialIndexSettings: {// 控制索引如何被初始化,这仅当索引尚未生成时有效// 你可能需要在修改后手动删除并重新生成新的索引YOUR_INDEX_NAME: {attributesForFaceting: ["type", "lang"],attributesToRetrieve: ["hierarchy", "content", "anchor", "url"],attributesToHighlight: ["hierarchy", "hierarchy_camel", "content"],attributesToSnippet: ["content:10"],camelCaseAttributes: ["hierarchy", "hierarchy_radio", "content"],searchableAttributes: ["unordered(hierarchy_radio_camel.lvl0)","unordered(hierarchy_radio.lvl0)","unordered(hierarchy_radio_camel.lvl1)","unordered(hierarchy_radio.lvl1)","unordered(hierarchy_radio_camel.lvl2)","unordered(hierarchy_radio.lvl2)","unordered(hierarchy_radio_camel.lvl3)","unordered(hierarchy_radio.lvl3)","unordered(hierarchy_radio_camel.lvl4)","unordered(hierarchy_radio.lvl4)","unordered(hierarchy_radio_camel.lvl5)","unordered(hierarchy_radio.lvl5)","unordered(hierarchy_radio_camel.lvl6)","unordered(hierarchy_radio.lvl6)","unordered(hierarchy_camel.lvl0)","unordered(hierarchy.lvl0)","unordered(hierarchy_camel.lvl1)","unordered(hierarchy.lvl1)","unordered(hierarchy_camel.lvl2)","unordered(hierarchy.lvl2)","unordered(hierarchy_camel.lvl3)","unordered(hierarchy.lvl3)","unordered(hierarchy_camel.lvl4)","unordered(hierarchy.lvl4)","unordered(hierarchy_camel.lvl5)","unordered(hierarchy.lvl5)","unordered(hierarchy_camel.lvl6)","unordered(hierarchy.lvl6)","content",],distinct: true,attributeForDistinct: "url",customRanking: ["desc(weight.pageRank)","desc(weight.level)","asc(weight.position)",],ranking: ["words","filters","typo","attribute","proximity","exact","custom",],highlightPreTag:'<span class="algolia-docsearch-suggestion--highlight">',highlightPostTag: "</span>",minWordSizefor1Typo: 3,minWordSizefor2Typos: 7,allowTyposOnNumericTokens: false,minProximity: 1,ignorePlurals: true,advancedSyntax: true,attributeCriteriaComputedByMinProximity: true,removeWordsIfNoResults: "allOptional",},},
});

配置完成后,点击右上角的 save 进行保存在;然后找个自己的文档的链接,粘贴到URL Tester里,点击RUN Test测试下,看是否能成功,成功则进行下一步,否则继续调整抓取规则,指导能抓取成功!如下图,多测几个链接,保证都可用。

链接测试完成后,可以在 Search Preview 里可以搜素看看,能搜索到自己的内容就可以了;

然后返回到 Overview 菜单, 点击右上角的 Restart crawling 按钮,重新进行抓取,爬取成功之后会发送邮件,文章少爬取的就快,成功后,下面的 Indices 栏会显示 Records 数;

然后在返回点击index回到algolia,看数据是否同步过来就可以了,前面做完没问题这个同步正常也是会没问题的;


网站测试搜索

此时再去自己的网站试试,应该就可以了,如果不行,就重复爬取一下数据,再等一等再试!


配置完成 - 总结回顾

对于 vuepress 来说,就是安装个插件配置参数的事,可还是让人耽误了好些时间。官方文档中并未对常见的一些问题予以说明,还需咱们自己踩坑,希望大家也能将自己日常踩的坑分享出来,避免更多的人,无休止的耗费精力。祝大家一切顺利,所踩之坑,皆能被填平!
据说,点免费Star的人都被领导加鸡腿了!😄 ToLiucyLinux私域源码

相关文章:

Algolia - Docsearch的申请配置安装【以踩坑解决版】

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…...

【文档智能】开源的阅读顺序(Layoutreader)模型使用指南

一年前&#xff0c;笔者基于开源了一个阅读顺序模型&#xff08;《【文档智能】符合人类阅读顺序的文档模型-LayoutReader及非官方权重开源》&#xff09;&#xff0c; PDF解析并结构化技术路线方案及思路&#xff0c;文档智能专栏 阅读顺序检测旨在捕获人类读者能够自然理解的…...

现在的AI应用距离通用agent差的那点儿意思

现在的AI应用距离通用Agent差的那点儿意思 引言&#xff1a;从"生成力"到"行动力" 当前AI应用最显著的进步体现在内容生成能力上——无论是ChatGPT的流畅对话&#xff0c;还是Midjourney的惊艳画作&#xff0c;都展示了强大的生成力。然而&#xff0c;正…...

LeetCode 热题 100 238. 除自身以外数组的乘积

LeetCode 热题 100 | 238. 除自身以外数组的乘积 大家好&#xff0c;今天我们来解决一道经典的算法问题——除自身以外数组的乘积。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求在不使用除法的情况下&#xff0c;计算数组中每个元素的乘积&#xff0c;其中每个元素的…...

分享 2 款基于 .NET 开源的实时应用监控系统

前言 在现代软件开发和运维管理中&#xff0c;实时应用监控系统扮演着至关重要的角色。它们能够帮助开发者和运维人员实时监控应用程序的状态&#xff0c;及时发现并解决问题&#xff0c;从而确保应用的稳定性和可靠性。今天大姚给大家分享 2 款基于.NET 开源的实时应用监控系…...

使用pytorch保存和加载预训练的模型方法

需要使用到的函数 在 PyTorch 中&#xff0c;torch.save() 和 torch.load() 是用于保存和加载模型的核心函数。 torch.save() 函数 主要用途&#xff1a;将模型或模型的状态字典&#xff08;state_dict&#xff09;保存到文件中。 语法&#xff1a; torch.save(obj, f, pi…...

Linux/AndroidOS中进程间的通信线程间的同步 - 消息队列

本文介绍消息队列&#xff0c;它允许进程之间以消息的形式交换数据。数据的交换单位是整个消息。 POSIX 消息队列是引用计数的。只有当所有当前使用队列的进程都关闭了队列之后才会对队列进行标记以便删除。POSIX 消息有一个关联的优先级&#xff0c;并且消息之间是严格按照优…...

DNA Launcher:打造个性化安卓桌面,开启全新视觉体验

DNA Launcher是一款专为安卓手机设计的桌面美化软件&#xff0c;旨在为用户提供丰富多样的桌面美化选项和全新的操作逻辑。通过这款软件&#xff0c;用户可以轻松调整桌面布局、更换主题、添加个性化元素&#xff0c;打造出独一无二的手机桌面。它支持多分辨率重新布局&#xf…...

Flink SQL DataStream 融合开发模式与动态配置热加载机制实战

一、为什么需要 SQL 与 DataStream 融合开发? 在实时数仓构建中,Flink SQL 的易用性和声明式优势广受欢迎;但遇到业务逻辑复杂、需要灵活控制时,DataStream API 提供了不可替代的灵活性。 而现实中,我们常常遇到如下痛点: 场景问题解决方式多业务线、多个 Kafka Topic,…...

4.2java包装类

在 Java 里&#xff0c;基本数据类型不具备对象的特性&#xff0c;像不能调用方法、参与面向对象的操作等。为了让基本数据类型也能有对象的行为&#xff0c;Java 提供了对应的包装类。同时&#xff0c;自动拆箱和自动装箱机制让基本数据类型和包装类之间的转换更加便捷。 包装…...

在一台服务器上通过 Nginx 配置实现不同子域名访问静态文件和后端服务

一、域名解析配置 要实现通过不同子域名访问静态文件和后端服务&#xff0c;首先需要进行域名解析。在域名注册商或 DNS 服务商处&#xff0c;为你的两个子域名 blog.xxx.com 和 api.xxx.com 配置 A 记录或 CNAME 记录。将它们的 A 记录都指向你服务器的 IP 地址。例如&#x…...

C++23 views::as_rvalue (P2446R2) 深入解析

文章目录 引言C20 Ranges库回顾什么是Rangesstd::views的作用 views::as_rvalue 概述基本概念原型定义工作原理 应用场景容器元素的移动与其他视图适配器结合使用 总结 引言 在C的发展历程中&#xff0c;每一个新版本都会带来一系列令人期待的新特性&#xff0c;这些特性不仅提…...

Mockoon 使用教程

文章目录 一、简介二、模拟接口1、Get2、Post 一、简介 1、Mockoon 可以快速模拟API&#xff0c;无需远程部署&#xff0c;无需帐户&#xff0c;免费&#xff0c;跨平台且开源&#xff0c;适合离线环境。 2、支持get、post、put、delete等所有格式。 二、模拟接口 1、Get 左…...

15.thinkphp的上传功能

一&#xff0e;上传功能 1. 如果要实现上传功能&#xff0c;首先需要建立一个上传表单&#xff0c;具体如下&#xff1a; <form action"http://localhost/tp6/public/upload"enctype"multipart/form-data" method"post"><input type&…...

G口大带宽服务器线路怎么选

G口大带宽服务器线路选择指南 ​​一、线路类型与特点​​ ​​单线&#xff08;电信/联通/移动&#xff09;​​ ​​优势​​&#xff1a;带宽独享、价格低、延迟稳定&#xff0c;适合单一运营商用户集中场景。​​劣势​​&#xff1a;跨运营商访问延迟高&#xff08;如电信…...

低秩适应(LoRA)与量化LoRA(QLoRA)技术解析

LoRA&#xff1a;从线性代数到模型微调 从矩阵分解理解Lora 假设我们有一个大模型中的权重矩阵&#xff0c;形状为1024512&#xff08;包含约52万个参数&#xff09;。传统微调方法会直接更新这52万个参数&#xff0c;这不仅计算量大&#xff0c;而且存在过拟合风险。 LoRA的…...

Webug4.0靶场通关笔记22- 第27关文件包含

目录 一、文件包含 1、原理分析 2、文件包含函数 &#xff08;1&#xff09;include( ) &#xff08;2&#xff09;include_once( ) &#xff08;3&#xff09;require( ) &#xff08;4&#xff09;require_once( ) 二、第27关渗透实战 1、打开靶场 2、源码分析 3、…...

OpenCV CPU性能优化

OpenCV 在 CPU 上的性能优化涉及多个层次&#xff0c;从算法选择到指令级优化。以下是系统的优化方法和实践技巧&#xff1a; 一、基础优化策略 1. 内存访问优化 连续内存布局&#xff1a;优先使用 cv::Mat::isContinuous() 检查 cpp if(mat.isContinuous()) {// 可优化为单循…...

OpenCV进阶操作:图像的透视变换

文章目录 前言一、什么是透视变换&#xff1f;二、透视变换的过程三、OpenCV透视变换核心函数四、文档扫描校正&#xff08;代码&#xff09;1、预处理2、定义轮廓点的排序函数3、定义透视变换函数4、读取原图并缩放5、轮廓检测6、绘制最大轮廓7、对最大轮廓进行透视变换8、旋转…...

MySQL事务隔离机制与并发控制策略

MySQL事务隔离机制与并发控制策略 MySQL事务隔离机制与并发控制策略一、数据库并发问题全景解析二、事务隔离级别深度解析三、MySQL并发控制核心技术1. 多版本并发控制&#xff08;MVCC&#xff09;2. 锁机制 四、隔离级别实现差异对比五、生产环境最佳实践六、高级优化技巧七、…...

【算法学习】递归、搜索与回溯算法(二)

算法学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言&#xff1a; 在&#xff08;一&#xff09;中我们挑了几个经典例题&#xff0c;已经对递归、搜索与回溯算法进行了初步讲解&#xff0c;今天我们来进一步讲解…...

SpringBoot整合PDF导出功能

在实际开发中&#xff0c;我们经常需要将数据导出为PDF格式&#xff0c;以便于打印、分享或存档。SpringBoot提供了多种方式来实现PDF导出功能&#xff0c;下面我们将介绍其中的一些。 HTML 模板转 PDF&#xff08;推荐&#xff09; 通过模板引擎&#xff08;如 Thymeleaf 或…...

关于MySQL 数据库故障排查指南

&#x1f6e0; MySQL 数据库故障排查指南 目标&#xff1a;解决常见数据库问题&#xff0c;保障数据安全与系统稳定运行。 一、常见故障类型概览 故障类型可能原因排查/解决步骤无法连接服务未启动、端口未监听、用户权限不足 查看服务状态&#xff1a; systemctl status my…...

ubuntu yolov5(c++)算法部署

1.安装onnx 1.15.0 首先使用如下命令关闭 anaconda 对后续源码编译的影响&#xff1b; # 禁用当前 conda 环境 conda deactivate# 确保 conda 初始化脚本不会自动激活 base 环境 conda config --set auto_activate_base false# 然后重新打开终端或执行 source ~/.bashrc 1.安…...

基于Centos7的DHCP服务器搭建

一、准备实验环境&#xff1a; 克隆两台虚拟机 一台作服务器&#xff1a;DHCP Server 一台作客户端&#xff1a;DHCP Clinet 二、部署服务器 在网络模式为NAT下使用yum下载DHCP 需要管理员用户权限才能下载&#xff0c;下载好后关闭客户端&#xff0c;改NAT模式为仅主机模式…...

《开源先锋Apache软件基金会:历史沿革、顶级项目与行业影响》

1. Apache软件基金会概述 Apache软件基金会&#xff08;Apache Software Foundation, ASF&#xff09; 是全球最大的开源软件组织之一&#xff0c;成立于1999年&#xff0c;是一个非营利性机构&#xff0c;致力于为公共利益提供开源软件。ASF以“社区主导、共识决策”为核心原…...

Java数据结构——Queue

Queue 队列的概念队列的使用offer和poll方法add和remove方法 设计循环队列队列实现栈栈实现队列 前面所说的Stack是 先入后出的原则&#xff0c;那有没有 先入先出的原则的结构呢&#xff1f;这就是本篇博客所讲的Queue序列就是这个原则 队列的概念 只允许在一段进行插入数据…...

仓储车间安全革命:AI叉车防撞装置系统如何化解操作风险

在现代物流体系中&#xff0c;仓储承担着货物储存、保管、分拣和配送等重要任务。但现代仓储行业的安全现状却不容乐观&#xff0c;诸多痛点严重制约着其发展&#xff0c;其中叉车作业的安全问题尤为突出。相关数据显示&#xff0c;全球范围内&#xff0c;每年因叉车事故导致的…...

深入 FaaS 核心:函数是如何“活”起来的?

深入 FaaS 核心:函数是如何“活”起来的? 在上一篇《你好,Serverless!告别服务器运维的烦恼》中,我们认识了 Serverless 的基本概念,并知道了 FaaS (Function as a Service) 是其核心计算单元,就像一个个“随叫随到”的专业工具人。 那么,这些“工具人”到底是如何被“…...

vue2 两种路由跳转方式

第一种方式&#xff1a;path跳转 第二中写法&#xff1a;用name跳转 路由传参 动态路由传参 案例 通过${} 动态路由传参 动态路由使用params来进行接收 name 传参 总结 传的什么用什么接受...

手机上使用的记录笔记的软件推荐哪一款

在快节奏的生活中&#xff0c;一款好用的手机笔记软件就像随身携带的“外挂大脑”&#xff0c;能帮我们高效记录生活点滴、工作计划和灵感创意。今天&#xff0c;就来给大家详细对比一下Pendo、敬业签、MIGi日历记事本这三款热门笔记软件。 一、Pendo笔记&#xff1a;智能日程…...

SpringBoot 讯飞星火AI WebFlux流式接口返回 异步返回 对接AI大模型 人工智能接口返回

介绍 用于构建基于 WebFlux 的响应式 Web 应用程序。集成了 Spring WebFlux 模块&#xff0c;支持响应式编程模型&#xff0c;构建非阻塞、异步的 Web 应用。WebFlux 使用了非阻塞的异步模型&#xff0c;能够更好地处理高并发请求。适合需要实时数据推送的应用场景。 WebClie…...

Python学习笔记--Django的安装和简单使用(一)

一.简介 Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。Django 提供了一套强大的工具和约定&#xff0c;使得开发者能够快速构建功能齐全且易于维护的网站。Django 遵守 BSD 版权&#xff0c;初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1…...

Java 17配置Jenkins

找到 Java 17 的安装路径 which java ls -l /usr/lib/jvm/ 修改 Jenkins 服务配置 sudo nano /etc/systemd/system/jenkins.service 修改为 [Unit] DescriptionJenkins Automation Server Afternetwork.target[Service] Typesimple Userjenkins Groupjenkins Environment&…...

前端面试每日三题 - Day 28

这是我为准备前端/全栈开发工程师面试整理的第28天每日三题练习&#xff1a; ✅ 题目1&#xff1a;HTTP缓存策略全景解析 核心缓存类型对比表 缓存类型验证方式响应头网络请求消耗强缓存无Cache-Control/Expires无协商缓存If-Modified-Since等ETag/Last-Modified304响应 1.强…...

B站pwn教程笔记-8

接着上次的习题刷&#xff0c;然后补充新的知识。这开始就接触花式栈溢出了 pwn3&#xff08;ret2libc较难&#xff09; 上次已经知道大致思路&#xff0c;现在看看怎么实现。 使用命令 ldd 可看出连接的LIBC是哪个&#xff0c;如下图所示。&#xff08;第一行&#xff09; …...

uniapp项目打包的微信小程序,设置uni-popup type=“bottom“时,底部有空隙

问题&#xff1a; uniapp项目打包的微信小程序&#xff0c;设置uni-popup type"bottom"时&#xff0c;底部有空隙 解决思路&#xff1a; 1、检查代码是否存在样式问题 2、使用微信小程序自带的调试器元素 3、查看源码定位底部是如何出现该空隙的 1、检查代码 检…...

《Zabbix Proxy分布式监控实战:从安装到配置全解析》

注意&#xff1a;实验所需的zabbix服务器的搭建可参考博客 zabbix 的docker安装_docker安装zabbix-CSDN博客 1.1 实验介绍 1.1.1 实验目的 本实验旨在搭建一个基于Zabbix的监控系统&#xff0c;通过安装和配置Zabbix Proxy、MySQL数据库以及Zabbix Agent&#xff0c;实现分…...

zookeeper实现分布式获取全局唯一自增ID的案例。

项目结构 所有配置写在 application.yml 文件中&#xff0c;代码进行了拆分&#xff0c;加入了相关依赖。 1. pom.xml 依赖 <dependencies><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><…...

微信小程序上传视频,解决ios上传完video组件无法播放

1.碰到问题 工单里面上传完视频video组件ios无法播放视频,安卓可以 2.原因 使用了后台接口返回的url拼域名 &#xff0c; 正确做法&#xff1a;使用wx.chooseMedia()里面的tempFilePath&#xff08;本地临时文件路径 (本地路径)&#xff09;&#xff0c;上传好了详情可以使用后…...

硕博士学位论文题目需要注意的几个问题

摘要: 论文题目既要高大上, 又要与别人的区别开. 本贴描述一些基本的思路. 研究生们应该从图书馆找 100 篇博士论文的题目参考&#xff0c;以跳出思维定式. 1. 题目要足够具体 需要把自己的几篇小论文覆盖&#xff0c;且最小的一个帽子 帽子大了就变成书籍的名字&#xff0c;…...

图像匹配导航定位技术 第 8 章

第 8 章 SAR 图像匹配定位技术 目前 &#xff0c;光学传感器已经能获取高分辨率&#xff0c;即与视觉效果相近的目标图像&#xff0c;但是光学传感器容易受到天气变化的影响&#xff0c;从而影响效率。而径雷达 ( synthetic aperture radar&#xff0c;SAR)传感器不仅能获得与…...

四、Hadoop 2.X vs 3.X:特性、架构与性能全解析

Hadoop 2.X 与 Hadoop 3.X 深度对比&#xff1a;版本特性、架构与性能剖析 在大数据处理的浪潮中&#xff0c;Hadoop 凭借其分布式存储与计算的强大能力&#xff0c;成为了业界的核心框架之一。随着技术的不断演进&#xff0c;Hadoop 也经历了多个重要版本的迭代。其中&#x…...

【Linux】FreeRTOS与Linux:实时与通用的终极对比

文章目录 FreeRTOS & Linux1 本质区别2 应用场景3 架构差异4 为什么容易混淆&#xff1f;5 合作与共存总结 FreeRTOS & Linux FreeRTOS 和Linux是两种完全不同的操作系统&#xff0c;设计目标和应用场景有显著区别。 1 本质区别 特性FreeRTOSLinux类型实时操作系统&…...

关于vue-office在vue3工程中的引用报错问题

在vue3项目工程中&#xff0c;根据vue-office文档在vue2中的引用&#xff1a; //引入VueOfficeDocx组件 相关样式import VueOfficeDocx from vue-office/docx;import vue-office/docx/lib/index.css; 报错信息&#xff1a; [plugin:vite:import-analysis] Failed to resolve …...

【NLP 71、常见大模型的模型结构对比】

三到五年的深耕&#xff0c;足够让你成为一个你想成为的人 —— 25.5.8 模型名称位置编码Transformer结构多头机制Feed Forward层设计归一化层设计线性层偏置项激活函数训练数据规模及来源参数量应用场景侧重GPT-5 (OpenAI)RoPE动态相对编码混合专家架构&#xff08;MoE&#…...

Java详解LeetCode 热题 100(13):LeetCode 53:最大子数组和(Maximum Subarray)详解

文章目录 1. 题目描述2. 理解题目3. 解题思路3.1 暴力法3.1.1 O(n) 暴力解法3.1.2 O(n) 优化的暴力解法3.2 分治法3.3 动态规划(Kadane算法)3.3.1 动态规划基本思路3.3.2 Kadane算法(空间优化版本)3.4 前缀和方法4. 具体实例解析5. 代码优化与技巧5.1 处理空数组和边界情况…...

数字化驱动下的智慧物流与零售创新:全流程无人仓与定制开发开源AI智能名片S2B2C商城小程序的协同实践

摘要&#xff1a;本文以京东"全球首个全流程无人仓"为技术载体&#xff0c;结合"定制开发开源AI智能名片S2B2C商城小程序"的零售创新实践&#xff0c;探讨数字化技术如何重构物流与零售场景。研究揭示&#xff0c;京东通过全流程无人仓实现仓储效率提升4倍…...

从“工地砌砖”到“工厂造房”:模块化集成建筑(MiC建筑)如何重塑建筑业

在城市化进程加速与资源环境约束加剧的双重挑战下&#xff0c;建筑业正经历着一场深刻变革。模块化集成建筑&#xff08;Modular Integrated Construction&#xff0c;简称MiC&#xff09;以“工厂造楼”为核心理念&#xff0c;通过将建筑拆解为标准化模块并在工厂完成全流程预…...

idea出现tomcat不能正确部署的问题--解决方案

启动tomcat 报如下错误&#xff1a;&#xff08;是因为已经在其他tomcat的中使用了这两个端口&#xff09; 改成新端口 注意&#xff1a;不管是新增了页面&#xff0c;还是修改了页面&#xff0c;都需要重新部署项目&#xff0c;方法就是点击下面的绿色图标。否则新的页面操作不…...