Jekyll 搜索方案

2023年 1月 4日 27.9k 0

简介:Jekyll是一套静态HTML生成工具。文档系统利用Jekyll进行部署,最终将Markdown转换为HTML文件输出。搜索功能的需求是,根据关键字,匹配文档的标题或者内容,列出匹配的文档列表。

1. 方案一: Simple-Jekyll-Search

参考地址:https://github.com/christian-fei/Simple-Jekyll-Search搜索范围:文章标题方案实施:

  • Demo下通过配置参数,生成标题+URL的元数据search.json。
  • 前端利用关键字,匹配search.json中文章标题,显示搜索列表。
  • 优点:后端有simple-jekyll-search可用,前端有jekyll-search.js可用。成本低。缺点:仅能搜索文章标题,即使能搜索Tags和Keywords,也不太够。

    2. 方案二: Searchyll+Elasticsearch

    参考地址:http://allizad.com/2016/05/06/elasticserch-for-jekyll/搜索范围:文章内容方案实施:

  • 本地起一个Elasticsearch服务。
  • 安装Searchyll,在生成静态文件阶段,利用Hook,将完整HTML发送给Elasticsearch。
  • 前端将请求关键字发给Elasticsearch,返回列表显示。
  • 优点:搜索范围广,基本能满足需求。即使文章很多时,搜索性能也不会受太大影响。国外的Jekyll站点,很多使用的是第三方提供的Elasticsearch服务。缺点:需要新增一个服务,有一定的维护成本。

    3. 方案三: 文件入库定制搜索

    搜索范围:文章内容+标题方案实施:

  • Python静态页面入库
  • 前端发送关键字给后端,后端在数据库查询,返回匹配的文章列表
  • 优点:可以定制化搜索。缺点:文档更新频繁,需要同步刷新数据。

    相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论