Quartz 的全文搜索功能由 Flexsearch 驱动。即使对于多达 50 万字的 Quartz 站点,它也能在 10 毫秒内返回搜索结果。

可以通过点击搜索栏或按下 /ctrl + K 打开搜索框。每次查询会显示前 5 个搜索结果。匹配的子项会高亮显示,并摘录最相关的 30 个单词。点击搜索结果将跳转到对应页面。

要通过标签搜索内容,可以按下 /ctrl + shift + K 或在查询前添加 # 符号(例如 #components)。

该组件支持键盘操作:Tab 和 Shift+Tab 可以向前/向后循环切换搜索结果,Enter 将导航到高亮显示的搜索结果(默认第一个结果)。也可以使用 方向键浏览搜索结果。

Info

搜索功能需要configuration中存在 ContentIndex 发射器插件。

索引行为

默认情况下,它会索引站点的所有页面并移除 Markdown 语法。这意味着例如链接 URL 不会被索引。

它能正确对中文、韩文和日文字符进行分词处理,并为标题、内容和标签构建独立的索引,其中标题匹配的权重高于内容匹配。

自定义选项

  • 移除搜索功能:从 quartz.layout.ts 中删除所有 Component.Search() 的引用
  • 组件文件:quartz/components/Search.tsx
  • 样式文件:quartz/components/styles/search.scss
  • 脚本文件:quartz/components/scripts/search.inline.ts
    • 可修改 contextWindowWords(上下文窗口字数)、numSearchResults(搜索结果数量)或 numTagResults(标签结果数量)等参数以适应需求