Logseq 中文文档 下载 App

查询构建器:从知识库里筛选信息

查询是什么

查询(Query)就是带条件的筛选器。你告诉 Logseq「把所有满足条件的块找出来」,它就帮你列出来——而且结果是实时更新的:当你添加新的块或修改现有块,查询结果自动变化。

基础语法

查询用 {{query ...}} 包裹,里面是条件表达式(DSL = Domain Specific Language)。

{{query (task TODO)}}

上面这个查询会找出所有未完成的 TODO 块,无论它们分散在哪个页面里。

常用条件

条件含义
(task TODO)所有 TODO 状态的任务块
(task DONE)所有已完成的任务块
[[页面名]]所有引用了某个页面的块
#标签所有带某个标签的块
(property key value)所有属性等于某值的块
(ancestors [[页面]])某个页面下的所有后代块
(descendants [[页面]])某个页面的所有祖先页面

组合条件

{{query (and (task TODO) #学习)}}

→ 所有带 #学习 标签的未完成任务

{{query (or [[机器学习]] #ML)}}

→ 引用了 [[机器学习]] 页面或带 #ML 标签的所有块

{{query (and (task TODO) (property priority high))}}

→ 高优先级的未完成任务

查询结果展示

查询结果可以以三种形式呈现:

  1. 列表(默认)— 按块原样显示,保留缩进
  2. 表格 — 把每个块展开成行,属性变成列。适合汇总数据
  3. 卡片 — 类似看板,按某个属性分组。适合任务看板

在查询块上右键 → 「Query View」→ 选择展示方式。

自动查询 vs 手动查询

查询的典型用途

1. 任务看板

{{query (task TODO)}}

→ 在专门的看板页面里汇总所有待办事项

2. 主题汇总

{{query (and [[分布式系统]] (not (task TODO)))}}

→ 所有关于「分布式系统」的笔记块(排除任务)

3. 读书进度

{{query (and #阅读 (task DONE))}}

→ 所有已读完的书

4. 会议纪要待办

{{query (and #会议 (task TODO))}}

→ 来自所有会议记录里的待办事项

性能提示

当图谱有几千块时,复杂查询可能会变慢: