Appearance
algolia 为开源项目的文档和个人的博客提供免费的文档搜索服务,虽然有时候需要担心它的网络访问问题(毕竟外网)和索引更新问题,但在它的搜索体验上秒杀本地搜索的 minisearch 和 findpage。点击这个链接,可以申请。
我在昨天中午为我的笔记分享站点(https://hqy.life)申请了 API,没想到几个小时后就通过了。今天早上折腾了一下,有点点坑的地方记录一下。
一,得到申请通过邮件后,通过邮件链接进入,需要接受(Accpet)一个 Project 的邀请,然后会得到一个 Application。因为 algolia 是通过 Application ID 区分项目的,所以如果你一开始在自己先注册的号上通过引导创建过一个项目,很可能有重名的情况,千万要把之前自己创建那个删掉或重命名,不然很困惑自己,我在这里折腾了很多时间。
二,使用 algolia 提供的爬虫 爬取页面,最好给站点加上 sitemap.xml,如果从主页开始爬取,很可能不能爬取完毕所有链接。可以参考这个方法,在 SSG 生成页面前先生成 sitemap.xml。在爬虫页面左侧选择 Editor,把 startUrl 属性去掉,修改成 sitmaps,参考官方文档。我的默认里面是 startUrl 和 sitmaps 都有,所以删除 startUrl 就可以了。爬取的索引会在 Overview 子页面下右侧显示对应的 Application > Indices。
三,上面看的这个 Index 和 API页面 的 Application ID 和 Search API Key,填到自己的前端页面上就可以了,如果和我一样是使用 vitepress,看这个链接,一定要注意页面左上方的 Application,要选对!
四,还是爬虫问题,如果生成的 sitemap.xml 里的链接都是 xxx.html 的链接,但是页面内是去掉 html 的,比如开启了vitepress 的 cleanUrl,那么爬虫不会知道你服务器开启了重定向,会把这两个链接作为不同链接,导致你搜索一个文档,出现重复的结果。所以,在生成 sitemap.xml 的时候注意一下,自己是否是需要 .html。
五,爬虫每天最多只能自动爬1次,但是手动点击爬取倒不计次数。默认是三天一次,在 Editor 里修改。