TinaCMS 为内容提供了内置的搜索功能。这对于允许编辑者快速查找网站中的内容非常有用。TinaCloud 的内容搜索由 Fergus McDowall 的 search-index 库提供支持。
注意:目前在自托管的 Tina 中不支持搜索。
要启用搜索功能,您需要在 Tina 配置中填充 search
字段。使用 TinaCloud 搜索时,搜索配置中唯一必需的元素是 search.tina.indexerToken
字段。这可以从项目的 TinaCloud 仪表板中获取。
export default defineConfig({//...schema: {collections: [// 集合数组],},search: {tina: {indexerToken: '<Your Search Token>',stopwordLanguages: ['eng'],},indexBatchSize: 100,maxSearchIndexFieldLength: 100,},//.. 其他配置})
属性 | 描述 |
---|---|
| TinaCloud 搜索令牌 (必需) |
| 可选的字符串停用词语言数组。默认为 |
| 由索引过程使用,以确定每个请求要索引的文档数量。默认为 |
| 对于可变长度的文本字段,这控制在索引时考虑多少文本。较高的值将增加索引时间和搜索索引的大小。默认为 |
当搜索配置完成并且站点在本地使用 dev
命令运行时,内容将在启动时自动索引。对本地内容的任何更改也将触发对(本地)搜索索引的更新。
当搜索配置完成并且站点使用 build
命令构建用于生产时,搜索索引将自动创建并上传到 TinaCloud。您站点的每个 Git 分支都有一个单独的搜索索引。
请注意,搜索索引在站点构建后是“实时”的,因此任何新添加或删除的内容可能会在站点部署之前反映在搜索索引中。可以通过将 --skip-search-index
cli 选项传递给 build
命令来跳过构建搜索索引。然后可以在站点部署完成后单独运行 search-index 命令。
默认情况下,所有集合字段类型(除 image
外)都包含在搜索索引中。您可以通过控制哪些字段包含在搜索索引中来提高内容的可发现性。这可以通过在集合模式中的字段上设置可选的 searchable
属性来完成。例如,要禁用作者字段的索引,请使用类似以下的代码:
// ...fields: [// ...{label: '作者',name: 'author',type: 'reference',collections: ['author'],searchable: false, // 禁用作者字段的索引},]//
默认情况下,构建搜索索引时仅使用文本字段的前 100 个字符。这可以在 search
配置中全局调整(见上文),但也可以在每个字段的基础上进行调整,如下所示:
// ...fields: [// ...{label: '文章正文',name: 'body',type: 'string',maxSearchIndexFieldLength: 50, // 仅索引此字段的前 50 个字符},]//
目前仅支持 TinaCloud 的搜索 API,但我们计划在不久的将来提供替代提供商,以及实现自定义搜索提供商的文档。如果您希望支持特定的搜索提供商,请告知我们。