Use case or problem
Basically, I’d like to use tag:
for section:
.
For example, I have the following .md files:
test_search/test1.md
## test1-heading1 #tag2 #tag3
test1-111111
## test1-heading2
test1-222222
```
#tag2 #tag3
```
test_search/test2.md
## test2-heading1 #tag2
test2-111111
## test2-heading2 #tag2
test2-222222
## test2-heading3 #tag3
test2-333333
test_search/test3.md
## test3 #tag3
test3-333333
My purpose is to search all the sections that contain both two tags, i.e. #tag2
and #tag3
.
A naive approach is to use section:(#tag2 #tag3)
, the result is:
Note that
-
It included two results instead of one. The 2nd is in the code block and they are not tags!
-
I have turn on the “Explain search term”, it shown that engine was matching text rather than tag.
The obsidian doc says that
Note: Since
tag:
ignores matches in code blocks and in non-Markdown content, it’s often faster and more accurate than a normal full-text search for#work
.
Thus I tried to nest tag:
inside section:
:
section:((tag: tag2) (tag: tag3))
However it doesn’t work.
The “Explain search term” says
Operator “tag” cannot be nested within “section”.
Ideally, searching should be able to make tag:
and section:
work together, e.g. supports tag:
to be nested within section:
.
Thanks.
Proposed solution
Enhance the query language.
Current workaround (optional)
Use the naive approach, i.e. section:(#tag2 #tag3)
.