用vitepress来构建静态站点时都知道,如果页面多时都要在导航上面增加一个搜索功能。

搜索功能最常用的就是第三方的Algolia。

查了一下vitepress文档才知道,vitepress支持一个叫本地搜索的东西,是一个基本内存搜索的javascript功能,配置也是极其的简单,只要在配置文件的themeConfig里增加provider:local即可。

vitepress支持搜索功能

  • Algolia文档搜索
  • MiniSearch本地搜索

演示网址:.

https://www.unocss.com.cn

效果:

MiniSearch是什么

MiniSearch 是一个轻量级、功能强大的内存全文搜索引擎,用 JavaScript 编写。以下是关于它的

详细介绍:

特点

  • 轻量级:无外部依赖,资源占用少,适合在浏览器和 Node.js 环境运行,尤其适用于内存受限的场景,如移动浏览器。
  • 功能丰富:支持精确匹配、前缀搜索、模糊匹配、字段提升等功能,还具备自动建议引擎,可用于搜索查询的自动完成,拥有现代化的搜索结果排名算法。

    离线工作:通过将索引存储在本地内存中,MiniSearch 可以离线工作,快速处理查询,无需网络延迟。
  • 实时更新:支持实时索引更新,可随时向索引中添加和删除文档。

应用场景

客户端搜索应用:非常适合需要快速响应的客户端搜索应用,如网页和移动应用中的实时 “边输入边搜索” 场景,将索引保存在客户端可实现快速响应的用户界面,无需向搜索服务器发送请求。

此外,还有一个名为 MiniSearch 的浏览器内搜索助手。它是一个基于现代前端技术构建,利用 Docker 容器技术的轻量级、隐私保护优先的搜索应用,内置人工智能助手。它以 SearXNG 的 Docker 镜像作为元搜索引擎,具有隐私保护严格、易用性强、跨平台、可定制等特点,适用于个人、教育环境和企业内部等多种场景

Algolia是什么

Algolia 是一个 AI 驱动的搜索和发现平台,为企业提供快速、可扩展的个性化搜索体验。以下是关于它的详细介绍:

核心功能

  • 索引:能从数据库、JSON 对象、CSV 文件等不同数据源提取数据,为可搜索内容创建结构化数据库,就像图书馆目录,方便快速查找。
  • 排名:运用复杂算法确定搜索结果的相关性,考虑文本相关性、用户行为和业务指标等因素,并且可以根据业务目标自定义排名算法。
  • 查询:用户搜索时,Algolia 能快速处理请求并显示结果,通常在毫秒级。用户还可通过过滤器、分面和地理位置等进一步定制搜索。

主要特点

  • 速度与性能:基础设施专为速度设计,搜索响应时间通常在 100 毫秒以内,有助于提高用户参与度和转化率。
  • 相关性与个性化:利用用户行为数据个性化搜索结果,提升用户满意度和参与度。
  • 过滤与分面:允许用户根据数据属性应用过滤器缩小搜索范围。
  • 多语言与容错:支持多种语言,能妥善处理拼写错误,确保搜索结果准确。
  • 分析与 A/B 测试:提供分析、洞察和性能指标,帮助优化搜索体验。

应用场景

  • 电子商务:为电商网站提供精准产品搜索,助力用户快速找到商品,通过个性化推荐提高转化率和用户满意度。
  • 内容平台:为媒体网站、博客平台等提供高效内容搜索,帮助用户发现相关文章、视频或音频内容。
  • 企业内部系统:可提高员工工作效率,促进信息共享。
  • 移动应用:为移动应用提供快速、准确的搜索功能。
  • 客户支持系统:帮助客户快速找到解决方案和相关信息,提高客户服务效率,减少人工支持需求。

Algolia 凭借其强大功能和开发者友好的特性,为各种应用和网站实现高级搜索功能提供了出色解决方案,能推动转化、提升用户满意度,让企业在数字领域具备竞争优势

vitepress静态站点支持离线浏览器本地全文搜索功能的更多相关文章

  1. Postgres全文搜索功能

    当构建一个Web应用时,经常被要求加上搜索功能.其实有时候我们也不知道我要搜索个啥,反正就是要有这个功能.搜索确实很重要的特性,这也是为什么像Elasticsearch和Solr这样基于Lucene的 ...

  2. 使用ElasticSearch服务从MySQL同步数据实现搜索即时提示与全文搜索功能

    最近用了几天时间为公司项目集成了全文搜索引擎,项目初步目标是用于搜索框的即时提示.数据需要从MySQL中同步过来,因为数据不小,因此需要考虑初次同步后进行持续的增量同步.这里用到的开源服务就是Elas ...

  3. 如何在Web前端实现CAD图文字全文搜索功能之技术分享

    现状 在CAD看图过程中我们经常会需要用到查找文字的功能,在AutoCAD软件查找一个文字时,可以通过打开左下角输入命令find,输入查找的文字,然后设置查找范围,就可以搜索到需要查询的文字.但在We ...

  4. GoldenDict词典的超级实用高级玩法----全文搜索功能

    快捷键: Ctrl+Shift+F 菜单进入:搜索--全文搜索 模式:正则表达式 比如:我想知道地道的英文表达    请xx天/周/年假 给搜索框写入正则表达式   请(.)(天|周|年)假 就可以了 ...

  5. 为Jekyll+GitHub Pages添加全文搜索功能

    动态演示如下: [上传失败, 请自行搜索原文] 源码库: program-in-chinese/team_website 找到此JS工具: christian-fei/Simple-Jekyll-Se ...

  6. 08: Django使用haystack借助Whoosh实现全文搜索功能

    参考文章01:http://python.jobbole.com/86123/ 参考文章02: https://segmentfault.com/a/1190000010866019 参考官网自定制v ...

  7. 使用ElasticSearch实现搜索时即时提示与全文搜索功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 用于浏览器本地存储的js插件 - jStorage

    简介 jStorage是一个跨浏览器的将key-value类型的数据存储到浏览器本地存储的js插件——jStorage支持所有主流浏览器,PC机(甚至包括是IE6)和移动终端均可用.此外,jStora ...

  9. MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持

    背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...

  10. Flask 教程 第十六章:全文搜索

    本文翻译自The Flask Mega-Tutorial Part XVI: Full-Text Search 这是Flask Mega-Tutorial系列的第十六部分,我将在其中为Microblo ...

随机推荐

  1. delphi 弹出输入框的InputQuery, InputQuery 函数用法

    delphi 弹出输入框的InputQuery, InputQuery 函数用法 procedure TForm1.Button1Click(Sender: TObject); var str: st ...

  2. 一文彻底搞清楚ArkUI

    程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发.鸿蒙开发.人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 0.前言 在移动开发领 ...

  3. 阿里云ECS下安装的MySQL无法远程连接?

    场景重现 在阿里云ECS下, Ubuntu系统上通过以下命令安装的MySQL数据库, 本地连接正常, 但远程死活连接不上. # 安装MySQL apt-get install mysql-server ...

  4. Redis 应用场景之短信验证码

    应用场景 以 OSChina 账号注册 为例...讲错了请留言批评指正... 逻辑场景 用户操作: 用户输入手机号, 然后点击获取验证码. 前端逻辑: ajax 发起请求, 参数带上手机号. 后端逻辑 ...

  5. [.net core] 创建和发布NuGet包 (dotnet CLI)

    [原文] :https://docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-the-dotne ...

  6. ubuntu 22.04安装docker

    一.安装 更新软件包索引: sudo apt-get update 允许APT使用HTTPS: sudo apt-get install -y apt-transport-https ca-certi ...

  7. 经过几天的努力Biwen.AutoClassGen终于实现了DTO复杂属性的生成

    前言 距写上一篇 https://www.cnblogs.com/vipwan/p/18535459 生成DTO已经有一段时间了, 最初没有考虑复杂二级属性嵌套的实现,而是直接使用排除使用自定义的方式 ...

  8. STM32串口缓冲区

    在嵌入式开发中,外设通信(如UART.SPI.I2C)的数据接收常面临两大挑战:不定时.不定量数据的实时处理和高频率数据流下的稳定性保障.传统的轮询方式效率低下,而中断驱动的接收逻辑又容易因处理延迟导 ...

  9. Python科学计算系列9—逻辑代数

    1.基本定理的验证 代码如下: from sympy import * A, B, C = symbols('A B C') # 重叠律 # A·A=A A+A=A print(to_cnf(A | ...

  10. Python科学计算系列7—微分方程

    1.可分离变量方程 例1:求下列微分方程法通解 先化简此方程如下: 代码如下: from sympy import * x = symbols('x') f = symbols('f', cls=Fu ...