-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
方案一:
lunr.js / jekyll-lunr-js-search
https://github.com/slashdotdash/jekyll-lunr-js-search
此方案通过 jekyll 插件,自动给所有文档生成索引文件,保存成一个 json 放置在工程目录下。前端每次执行搜索动作时,都访问这个 json,然后使用 lunr.js 执行搜索动作。
虽然 lunr.js 不支持中文(其实是所有非英语的 UTF-8 字符),但是可以通过简单修改来支持。
但是,这种方案缺点很大,主要有以下几点:
- 针对中文生成的索引文件太大,当文章较多时,能达到 4-5 MB 的大小。
事实上 github help 的搜索索引文件就有 5 MB 之大。(看 chrome 的请求可知)
当带宽不高,或者使用移动网络访问时,性能会很低下。 - jekyll-lunr-js-search 的索引策略并不科学。它只是弄了一个很呆板的索引 jekyll 的常用主要信息字段的索引方式。而很多小型静态站并没有必要这样索引。
方案二:
使用 elastic-search 生成索引,并把索引部署到某个网址作为服务来使用。
这种方式的可行性是有的,工作性能也是很好的。
唯一缺点在于部署和发布起来很繁琐,架构复杂。做起来比较费时间。
我们做小型静态站本身就是为了省时间。用这种方案会本末倒置。
方案三:
自己按需编写简单的小型索引方案。
目前正按此尝试。
Metadata
Metadata
Assignees
Labels
No labels