Please enable Javascript to view the contents

Jekyll 搜索方案

 ·  ☕ 2 分钟

简介:Jekyll是一套静态HTML生成工具。文档系统利用Jekyll进行部署,最终将Markdown转换为HTML文件输出。

搜索功能的需求是,根据关键字,匹配文档的标题或者内容,列出匹配的文档列表。

参考地址:https://github.com/christian-fei/Simple-Jekyll-Search

搜索范围:文章标题

方案实施:

  1. Demo下通过配置参数,生成标题+URL的元数据search.json。
  2. 前端利用关键字,匹配search.json中文章标题,显示搜索列表。

优点:后端有simple-jekyll-search可用,前端有jekyll-search.js可用。成本低。

缺点:仅能搜索文章标题,即使能搜索Tags和Keywords,也不太够。

2. 方案二: Searchyll+Elasticsearch

参考地址:http://allizad.com/2016/05/06/elasticserch-for-jekyll/

搜索范围:文章内容

方案实施:

  1. 本地起一个Elasticsearch服务。
  2. 安装Searchyll,在生成静态文件阶段,利用Hook,将完整HTML发送给Elasticsearch。
  3. 前端将请求关键字发给Elasticsearch,返回列表显示。

优点:搜索范围广,基本能满足需求。即使文章很多时,搜索性能也不会受太大影响。国外的Jekyll站点,很多使用的是第三方提供的Elasticsearch服务。

缺点:需要新增一个服务,有一定的维护成本。

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

搜索范围:文章内容+标题

方案实施:

  1. Python静态页面入库
  2. 前端发送关键字给后端,后端在数据库查询,返回匹配的文章列表

优点:可以定制化搜索。

缺点:文档更新频繁,需要同步刷新数据。


微信公众号
作者
微信公众号