Docusaurus配置Algolia DocSearch后搜索无返回结果问题咨询
Docusaurus 集成Algolia搜索返回无结果的常见原因
你已经通过官方审核、爬虫正常完成索引、搜索框能正常渲染,说明基础链路没有大问题,搜不到结果基本是以下几个可直接落地排查的问题:
- 索引名填错,这是最高发的问题
官方爬虫自动生成的索引名不是你申请时自定义的短标识,默认格式是把你站点域名的特殊符号全部去掉拼接而成,比如域名为open.xxx.com的话索引名一般是openxxxcom,很多人会自己填申请时写的简称,和实际生成的索引名完全对不上。直接去Algolia后台的Index列表页,复制爬虫实际创建的那个索引的完整名称,替换掉配置里的indexName字段就行,不要手打。 - 上下文搜索配置和索引字段不匹配
你当前开了contextualSearch: true,这个模式下搜索会自动带上当前页面的语言、文档版本、路径标签作为过滤条件,如果你的爬虫配置没有给索引记录打上对应的language、docusaurus_tag、version这类facet标签,过滤条件匹配不到任何记录就会返回空。可以先临时把这个配置改成false测试,如果改完能正常出结果,要么去爬虫配置里补上对应facet字段的爬取规则,要么保持关闭这个功能即可。 - Search API Key权限配置错误
就算你用的是官方给的Search API Key,也要去Algolia后台的API Keys管理页确认:这个Key的索引访问限制有没有覆盖你当前使用的索引,如果之前误操作给Key加了其他索引的访问白名单,没有包含你当前的文档索引,查询请求会被直接拦截返回空。 - 索引存储的域名和实际站点域名不匹配
如果爬取的时候用的是临时预览域名、或者你站点上线后更换过域名,索引里每条记录存的url字段和你当前站点的访问域名不一致,Docusaurus的搜索组件会自动过滤掉非本站点的结果,也会显示无结果。去Algolia后台的索引浏览页随便点开一条爬好的记录,看url字段的开头是不是和你现在站点的访问域名完全一致,不一致的话把爬虫配置里的起始地址改成正式域名,重新跑一次爬取任务就行。
快速定位方法:把配置里的
appId、apiKey、indexName三个值复制出来,去Algolia后台自带的API调试控制台选search接口,填这三个参数随便搜一个关键词,如果接口本身就返回空,就是参数填错、权限不足或者索引本身的问题;如果接口能正常返回记录,就是前端上下文搜索过滤、域名不匹配的问题。
内容的提问来源于stack exchange,提问作者vrudy_0o0
相关产品推荐
相关产品推荐

