How can I search for notes using the built-in search plugin, which supports regex, to search for notes that have no entry in specific keys within the frontmatter?

I am using templater and thus am using my frontmatter looks like this:

---

aliases:

publish: false

tag:

---

%%

date:: [[2023-07-11 Tue]]

parent:: [[XYZ]]

%%

Searching for "parent:: " works fine, but I want to find notes that do not have a parent note yet. For this I tried parent:: /$ as indicated here and here, but this and other variations like parent:: /\$/ do not yield any results.

Where am i going wrong?

  • Luxbux84@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    I don’t think the built-in search has this capability, but you can try this dataview query:

    LIST
    WHERE !parent
    
    • laurelinae@lemmy.worldOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Works like a charm! I didn’t know that I could query not just from tags but from any YAML key. Thank you!

  • nietscape@slrpnk.net
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    1 year ago

    If you’re using regex I’m assuming you know of utilities like Regex 101 to check your syntax.

    With JS-styled regex the entire statement is enclosed in slashes. /parent:: $/ should have the desired effect here.

    I second DataView for these kinds of tasks as the plugin revolves around YAML frontmatter. I have a utility note called “notes with cleanable metadata” that has a bunch of these DataView queries that update in real time.

    Good luck!

    • laurelinae@lemmy.worldOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      /parent:: $/

      Works perfectly! I thought I could start the regex in the middle of my text query. In hindsight, that of course makes no sense. Thank you!