文章目录
Obsidian 全库搜索
笔记界面的左边栏中搜索是对库中所有笔记进行关键字搜索,而笔记界面正上方是仅仅对当前笔记进行搜索。
全库搜索除了搜索单一关键词,还有更进阶的搜索方式。
同时包含多个关键词的笔记
要求某篇笔记同时含有关键词 A、B、C,才出现在搜索结果里。
方式:用空格将各个关键词分隔。
A B C
包含其中一个关键词的笔记
要求某篇笔记只需要包含多个关键词中之一即出现在搜索结果里。
方式:用 OR 来分隔各个关键词(关键词与 OR 之间也要有空格分隔)
A OR B OR C
不包含某个关键词的笔记
要求搜索结果不包含某个关键词,即出现在搜索结果里。
方式:用减号 -
放于关键词前方(减号与关键词间可以有空格也可以不留空格,不影响)
-A
通常并不单独使用,而是在搜索结果里筛选掉部分结果。
A - B C
表示搜索结果 同时包含 A、C ,但同时不能包含 B。
指定搜索范围
搜索文件名
方式:file:
关键词(英文冒号与关键词间可以有空格也可以没有)
file: A
注意,file: 关键词
这是作为一个整体存在的,相当于不加 file:
直接写关键词来搜索的整体一样。举例来说,就是如果你要搜索文件名同时要包含 A 与 B 的文件。你要如下书写:
file: A file:B 或 file:(A B) (小括号是英文输入法的小括号)
而不是
file: A B
(这表示 文件名包含 A 且全文包含 B,B 不一定出现在文件名中);
file:A B
等同于B file: A
。(file: 关键词
并非一定要写在最前面)
搜索文件内容
方式:content:
关键词(英文冒号与关键词间可以有空格也可以没有)
content: A
注意,content:A
与直接 A
是有区别的。直接 A
是既可以是文件名满足,也可以是文件内容满足,而 content:A
是得文件内容满足,如果文件内容没有 A 但文件名含 A 是不算的。
搜索标签
方式:tag:
关键词(英文冒号与关键词间可以有空格也可以没有)
tag: A
或
tag: #A (非得加上井号的话,井号与冒号之间可以有空格也可以没有空格,但井号与关键词之间不能有空格)
注意:
-
这里的标签匹配是完整匹配,比如
tag: 写 只能匹配
#写
或在 文件最开头用上下---
隔开的 tags 或 tag 中定义的标签写
,并不能匹配#写作
。你要想匹配#写作
,就得写成:tag: 写作
-
匹配是匹配一级标签是关键词的标签,比如
tag:写作
可以匹配到
- #写作
- #写作/人物
- #写作/人物/神态
但不能匹配到
- #爱好/写作
- #生活/爱好/写作
标签的两种定义方式:
#A
#B
#C
--- tag: A B C --- 或 --- tags: A B C --- 或 --- tag: - A B - C --- 这种换行方式,必须是无序列表(还得是`-` 不能是`*`),不能是有序,也不能直接换行不写无序符号就写标签名
注意这些方式都必须是写在文件最上方,其前可以有空行,但不能有非空的文字内容。并且标签前是不能加井号的(如
#A
)。
搜索同一行的多个关键词
这里的行是 Markdown 定义的”行“(Markdown中一个回车算一行,回车后是新行,和之前的行同属于一个Markdown意义上的段落/块。Markdown理解的段落/块是同时敲下两次回车,那么新行才与之前的内容不属于同一段落/块)。
搜索文件,要求满足包含某个段落,这个段落中同时包含多个关键词。(所谓的同一个段落,就是没有输入过回车,无序/有序列表回过车自然也不算同一段落)
方式:line:(关键词1 关键词2 关键词3)
(左边小括号与冒号之间可以有空格也可以没有空格)
line: (A B C)
这得有小括号才有意义,否则 line:A B
仅仅是表示搜索笔记,这个笔记中某行里包含 A,且笔记包含 B 关键词,而非同一行(段落)内包含 A 与 B。
搜索同一段落/块中的多个关键词
Markdown中,两次回车(即视觉上中间得有一个空行分隔的两段内容)才算是不同的段落/块。
方式:block:(关键词1 关键词2 关键词3)
(左边小括号与冒号之间可以有空格也可以没有空格)
block: (A B C)
文件1内容:
Akfjdlksjflskdjfsldkjlkj
Bfjskldfjalk
fsadfasC
文件2内容:
Alskdjf;slkdjfB
C
则,文件1会出现在搜索结果中,文件2不会出现在搜索结果中。
搜索同一章节中的多个关键词
同一章节是指两个标题之间的内容,即这些内容中不存在一个行里有任何级别的标题(包括更低的子级别的标题),甚至只写井号(不超过6个,超过6个(>=7)无所谓已经不算标题了)不写内容的行也不行(因为会被识别为标题)。
方式:section:(关键词1 关键词2 关键词3)
(左边小括号与冒号之间可以有空格也可以没有空格)
section: (A B C)
文件1内容:
## 标题2
A
B
C
### 标题3
D
文件2内容:
## 标题2
A
B
### 标题3
C
D
则搜索结果只有文件1,没有文件2。
任务搜索
任务:
任务1
任务2
方式:
-
不区分完成情况:
task:
关键词 (关键词与冒号之间可以有空格也可以没有空格)task: A
-
搜索完成的任务:
task-done:
关键词 (关键词与冒号之间可以有空格也可以没有空格)task-done: A
-
搜索未完成的任务:
task-todo:
关键词 (关键词与冒号之间可以有空格也可以没有空格)task-todo: A
若搜索所有任务,则不写关键词,而用英文符号的一对双引号来代替。
task: “” (双引号中可以有0~1个空格,不影响,但不能有2个或以上空格)
task-done:“” 显示所有完成的任务
task-todo:“” 显示所有未完成的任务
搜索结果保存
方式一:
可以用搜索结果右上角的功能 “复制搜索结果”,将搜索结果复制,并粘贴到文件中,作为本次搜索结果的保存,这样就不用每次去搜索一遍。
优点:
因为本身就是实打实的字符串粘贴,所以用别的 Markdown 编辑器打开这篇笔记,也能看到完整的搜索结果。
方式二:
使用 “代码形式”:在笔记中写入
```queary
task-done:""
```
这样,在 Obsidian 中就能查看这个搜索结果,但也仅仅是在 Obsidian 中才能看到,别的 Markdown 编辑器打开这篇笔记,只能看到这个代码块字符串,并不能看到搜索结果。
Obsidian 中,如果想进一步修改代码块以搜索别的内容,只需要点击代码块变成的搜索结果的右上方按钮</>
就能重新变为代码块,即可以修改搜索的关键词。