v4 入门指南
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
简介
DocSearch v4 相比之前版本有重大升级,提供了更强的可访问性、响应能力,并为您的文档带来更佳的搜索体验。它基于 Algolia Autocomplete 构建,确保无缝集成,已被全球领先的文档站点所信赖。
安装
在寻找组合式 API 文档?您可以在此处找到。
DocSearch 包已发布在 npm registry 上。
Docusaurus 用户
如果您的文档站点由 Docusaurus 驱动,请使用 @docsearch/docusaurus-adapter 以获取最新的 DocSearch 功能(包括侧边栏支持等新 的 Ask AI 功能),同时保留 @docusaurus/preset-classic。
- JavaScript
- React
yarn add @docsearch/js@4
# or with npm
npm install @docsearch/js@4
Without package manager
Include CSS in your website's <head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docsearch/css@4" />
And the JavaScript at the end of your <body>:
<script src="https://cdn.jsdelivr.net/npm/@docsearch/js@4"></script>
yarn add @docsearch/react@4
# or
npm install @docsearch/react@4
Without package manager
Include CSS in your website's <head>:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docsearch/css@4" />
And the JavaScript at the end of your <body>:
<script src="https://cdn.jsdelivr.net/npm/@docsearch/react@4"></script>
优化首次查询性能
通过使用 preconnect 来提升用户的首次搜索体验,请参阅下方的性能优化部分
实现
- JavaScript
- React
DocSearch requires a dedicated container in your HTML
<div id="docsearch"></div>
Initialize DocSearch by passing your container:
import docsearch from '@docsearch/js';
import '@docsearch/css';
docsearch({
container: '#docsearch',
appId: 'YOUR_APP_ID',
indexName: 'YOUR_INDEX_NAME',
apiKey: 'YOUR_SEARCH_API_KEY',
});
DocSearch generates an accessible, fully-functional search input for you automatically.
Integrating DocSearch into your React app is straightforward:
import { DocSearch } from '@docsearch/react';
import '@docsearch/css';
function App() {
return (
<DocSearch
appId="YOUR_APP_ID"
indexName="YOUR_INDEX_NAME"
apiKey="YOUR_SEARCH_API_KEY"
/>
);
}
export default App;
DocSearch generates a fully accessible search input out-of-the-box.
快速测试(无需凭证)
若您希望立即测试 DocSearch 而无需自己的凭证,请使用我们的演示配置:
- JavaScript
- React
docsearch({
appId: 'PMZUYBQDAK',
apiKey: '24b09689d5b4223813d9b8e48563c8f6',
indexName: 'docsearch',
askAi: 'askAIDemo',
});
<DocSearch
appId="PMZUYBQDAK"
apiKey="24b09689d5b4223813d9b8e48563c8f6"
indexName="docsearch"
askAi="askAIDemo"
/>
或使用我们全新的专用 DocSearch Playground
搭配 Ask AI 使用 DocSearch
DocSearch v4 引入了对 Ask AI 的支持,这是 Algolia 先进的 AI 驱动搜索功能。Ask AI 通过直接从您的文档中提供上下文相关且智能的响应,从而提升用户体验。您还可以使用相同的 askAi 配置对象,通过 Agent Studio 路由聊天请求。
要启用 Ask AI,您可以将 Algolia Assistant ID 作为字符串添加,或使用对象进行更高级的配置(例如指定不同的索引、凭证、搜索参数或启用 Agent Studio):
- String
- Object
docsearch({
appId: 'YOUR_APP_ID',
indexName: 'YOUR_INDEX_NAME',
apiKey: 'YOUR_SEARCH_API_KEY',
askAi: 'YOUR_ALGOLIA_ASSISTANT_ID',
});
docsearch({
appId: 'YOUR_APP_ID',
indexName: 'YOUR_INDEX_NAME',
apiKey: 'YOUR_SEARCH_API_KEY',
askAi: {
indexName: 'YOUR_MARKDOWN_INDEX', // Optional: use a different index for Ask AI
apiKey: 'YOUR_SEARCH_API_KEY', // Optional: use a different API key for Ask AI
appId: 'YOUR_APP_ID', // Optional: use a different App ID for Ask AI
assistantId: 'YOUR_ALGOLIA_ASSISTANT_ID',
searchParameters: {
facetFilters: ['language:en', 'version:1.0.0'], // Optional: filter Ask AI context
},
suggestedQuestions: true // Optional: enable loading suggested questions on the Ask AI new conversation screen
},
});
-
使用字符串形式进行简单设置
-
使用对象形式可自定义 Ask AI 使用的索引、凭证或过滤器
-
建议问题功能在 控制台 的 Ask AI 部分进行管理
搭配 Agent Studio 使用 DocSearch
要将 Algolia Agent Studio 用作聊天后端,请在 askAi 对象内设置 agentStudio: true。
docsearch({
appId: 'YOUR_APP_ID',
indexName: 'YOUR_INDEX_NAME',
apiKey: 'YOUR_SEARCH_API_KEY',
askAi: {
assistantId: 'YOUR_ALGOLIA_ASSISTANT_ID',
agentStudio: true,
searchParameters: {
YOUR_INDEX_NAME: {
filters: 'type:content AND language:en',
attributesToRetrieve: ['title', 'content', 'url'],
restrictSearchableAttributes: ['title', 'content'],
distinct: 'url',
},
},
},
});
-
agentStudio在askAi内部配置,而非作为 DocSearch 的顶层属性。 -
当
agentStudio: true时,searchParameters必须按索引名称作为键名。 -
Agent Studio 搜索参数支持
filters、attributesToRetrieve、restrictSearchableAttributes和distinct。
过滤搜索结果
关键词搜索
如果您的网站使用了 DocSearch 元标签 或在配置中添加了自定义变量,您就能使用 facetFilters 选项将搜索结果限定在某个facet范围内
这有助于将搜索范围限定在单一语言或单一版本
- JavaScript
- React
docsearch({
searchParameters: {
facetFilters: ['language:en', 'version:1.0.0'],
},
});
<DocSearch
searchParameters={{
facetFilters: ['language:en', 'version:1.0.0'],
}}
/>