搜索配置
搜索配置
搜索配置
Fern 使用 Algolia DocSearch 为您的文档提供搜索功能。 DocSearch 专为文档站点设计,帮助用户找到他们需要的内容。
DocSearch 扫描您的 Fern 站点内容并构建索引来生成搜索结果。 它包含基于您站点配置动态显示的内置下拉过滤器,让用户可以精细化搜索:
GET、POST、PUT、DELETE 等)过滤 API 结果Fern 可以将搜索范围限定在用户当前的上下文中。对于具有多个产品或版本的站点,在您的 docs.yml 中设置 default-search-filters: true 以将结果过滤到用户当前的产品和版本(用户仍可以移除这些过滤器以扩大搜索范围)。对于具有本地化文档的站点,搜索自动限定在读者的活跃语言范围内。对于多源站点,跨子路径的搜索范围(分层与统一)在 Fern Dashboard 中按域配置。
如果您正在使用 Ask Fern(AI 搜索),搜索框同时也充当您站点的聊天窗口。
带有 nofollow 或 noindex frontmatter 的页面将从 Algolia DocSearch 索引中排除,不会出现在搜索结果中。
Fern 配置 Algolia 的排序算法,优先匹配标题和关键词等高信号属性而非正文内容,然后应用时间、版本和页面位置的分级标准。
Algolia 根据匹配文本所在的属性来排序结果。较早列出的属性权重高于较晚列出的属性。Fern 按优先级顺序配置了以下可搜索属性:
所有属性都使用 unordered 匹配,意味着查询词在属性内的位置不会影响排序。例如,页面标题末尾的匹配与开头的匹配排序相同。
当多个结果具有相同的文本相关性分数时,Fern 应用自定义排序规则作为分级标准:
此外,Fern 通过规范路径名去重结果,因此每个页面在结果中最多出现一次。当存在重复项时,版本索引和页面位置分级标准决定哪个记录代表该页面。
文档的导航层次结构不会直接影响搜索排序。嵌套页面与顶级页面在文本相关性方面的排序相同。但是,在单个页面内,标题深度确实重要:h1 标题中的匹配排序高于 h2,h2 高于 h3,依此类推。标题层次结构按记录存储,因此 Algolia 可以区分顶级段落中的匹配和子段落中的匹配。
如果查询没有返回结果,Algolia 会逐步移除常见的文档术语以扩大搜索范围。当找不到精确匹配时,以下词语被视为可选:endpoint、api、guide、documentation、doc、parameter、webhook、websocket、http、code 和 snippet。
例如,搜索 webhook endpoint 如果没有返回结果,会重新尝试单独搜索 webhook 和 endpoint。
如果您需要将 Fern 的文档搜索集成到自己的应用程序或仪表板中,您可以使用独立搜索小部件来嵌入现成的 React 组件,或直接从 Fern 团队请求 Algolia 凭据以构建自定义集成。
一旦您有了凭据,就可以向 Algolia 的 API 发出请求来搜索您的文档。
联系 Fern 团队获取您的具体应用程序 ID 和索引名称。凭据按客户提供,以维护安全性。
注意: 请保护您的 Algolia 凭据安全,避免在客户端代码中暴露它们。考虑实现后端代理来发出 Algolia 请求。
您可以使用自定义 JavaScript 和您的 Algolia 凭据来覆盖 Fern 的搜索,使用自己的解决方案。