码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 静态博客如何实现站内搜索-大象装入冰箱


    静态博客如何实现站内搜索

    静态博客

    我们通过markdown写文章,
    再通过hexo,Jekyll等开源框架,可以生成自己的纯静态博客网站。
    通过我们的云服务器,或者github和gitee也支持我们把生成的纯静态页面发布出去,直接能够互联网访问。

    但是静态博客如何实现站内搜素呢:

    1. 简单的方式是利用搜索引擎或者第三方提供的站内搜索服务,这里不做这方面的讨论。
    2. 通过js实现搜索,这个我们做详细的展开介绍下】。

    js如何实现搜索

    其实原理很简单,就像把大象装入冰箱的步骤一样。

    把冰箱门打开

    维护好配置信息。
    比如我们有三篇文章

    java入门, 内容:java入门文章
    go入门, 内容:go入门文章
    python入门, 内容:python入门文章
    
    • 1
    • 2
    • 3

    对文章标题和url进行摘记:

    {
        "1": "java入门-url",
        "2": "go入门-url",
        "3": "python入门-url"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    把文章标题和url用数字关联。

    对文章内容进行摘记:

    {
        "java":"1-1",
        "go":"2-1",
        "python":"3-1",
        "入门":"1-1,2-1,3-1",
        "文章":"1-1,2-1,3-1",
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    以上内容举例就明白了:
    比如"入门":"1-1,2-1,3-1"表示就是”入门“这关键字在出现在文章1的第一行,还出现在文章2的第一行,还出现在文章3的第一行。

    其实就是反向索引的一些思路,只不过我们没对内容进行压缩和优化保存,改用对js友好的js格式保存,毕竟个人的笔记量即使每天写,每分钟写。。。

    以上摘记内容我们完全可以用自己擅长的语言对内容进行分析产生这样的json内容,并直接当全局变量保存到js中。

    把大象放进去

    js操作配置信息。
    这时候就更简单了,我们获取用户输入的搜索关键字,去json里面匹配。
    比如我们输入java,则获取到"1-1",
    我们就知道是文章1的第一行出现java这个关键字,
    而文章1对应的就是“java入门这篇文章”。

    然后把门关上

    大象装入冰箱是要三步的,我们也是哈,第三部发布出去。

  • 相关阅读:
    帆软FineReports使用超级链接导出excel出现错误代码:11300004没有找到模板文件
    【Qt之控件QTreeView】设置单元格高度、设置图标尺寸
    【视频】报告分享|展望人工智能银行:当银行遇到AI
    15:00面试,15:06就出来了,问的问题有点变态。。。
    c\c++ windows自动打开cmd并进入mysql
    Lua多脚本执行
    小 A 的卡牌游戏(Gym - 103186B)
    SplitMask:大规模数据集是自我监督预训练的必要条件吗?
    Python数据分析实战-实现一维列表(数组)和多维列表(数组)的相互转化(附源码和实现效果)
    element-ui vue2 iframe 嵌入外链新解
  • 原文地址:https://blog.csdn.net/yuoveyu/article/details/127766293
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号