Plugin release: Vantage - Advanced search builder

Vantage - Advanced search builder is now live and on the air via the Community Plugins gallery and on GitHub.

Vantage is a GUI for Obsidian’s powerful search features. My goal is to make it easier for users to learn about and use complex search queries.

It also integrates with @argentum’s Natural Language Dates plugin to provide an intuitive, fast way to search your daily notes.

Some example use cases for Vantage:

  • create an embedded search for last week’s incomplete tasks
  • build a complex query for every section or block that mentions “writing” with “publish” in the title
  • find all incomplete tasks in your daily notes
  • find all incomplete tasks tagged #important in notes with “project” in the title

As ever, bug reports and feature requests should be posted on the plugin’s GitHub repository under Issues!

47 Likes

i love pretty much what ever you make xD

2 Likes

Now Watching Skillfull Community members like you!! I know that one day Obsidian will have notion’s complexity! Great Plugin.

2 Likes

I activated the plugin in Third-party plugins but I could not find a place to open the Vantage-Advance Search window.

It is in the command palette! cmd/ctrl+p is the default hotkey to launch the command palette, I believe.

Thanks for reporting though—I’ll make a note to clarify how to access it in the readme.

2 Likes

This is very helpful, thanks.

I see you’ve restricted date checking to daily notes. I assume it’s something to do with avoiding a search of all notes, however that’s not where my tasks are. They are in individual project pages so I can’t see any way to search them by date range. Am I correct in understanding that?

Took me a few goes to get my #waiting tag found. If I put it in the tagged with field, it pulls up all items, incomplete or complete. Ended up leaving that field blank and searching for incomplete items with text #waiting

Cheers, David

Hm. How do you have the dates encoded into a given task on a project page? What would a successful query look like?

Glad you figured it out. The top section targets properties of the note proper, while the button helps target specific parts. The secret goal of the plugin is just to help people understand searching so that they can build their own queries, as it’s quite difficult to make a GUI to fit every possible transfiguration. Still, I’m open to hearing about better ways!

2 Likes

On a page I’d have something like

    - [ ] Send updated debtors report to directors, [[2021-01-29]] 

On the 2021-01-29 page I can see this item via backlinks, but I can’t see anything held over from yesterday without updating all the dates (and one could argue that’s good practice to reasses them all)

Am looking for a query that can show all uncompleted tasks up to and including that date, no matter where they are. Anything without a date can be excluded.

I may be asking for more than is possible from Obsidian at present.

So the task line always includes a link to the date?

No. Not all tasks are dated. Only those I know must be done on a certain day, or at least that I have to look at on that day.

- [ ] Buy replacement tent pegs

is an example of an undated task.

Sorry, yeah, I got that. I just meant: do all the tasks you’d want to find this way include a linked date?

Would it be possible for the plugin to add the function that return section ID ([[note#section]]) and line ID ([[note#^line]]) for section and line operators in addition to [[note]]?

What i mean is this function:
https://forum.obsidian.md/t/copy-search-results-add-line-block-section-function/10981

I like the idea, but I think it’s out of scope for Vantage at the moment. Sorry!

(The plugin actually doesn’t handle the search or its results whatsoever. It merely generates useful queries in the right syntax.)

2 Likes

Sorry, yeah, I got that. I just meant: do all the tasks you’d want to find this way include a linked date?

Yes.

1 Like

Thank you for your response!

1 Like

@ryanjmurhpy, with the help of Vantage I managed to get a few things sorted out last night which get me a long way towards a workable solution. Once I get it done and run with it for a week or so, I’ll make sure to post about it somewhere.

Reminder of setup:

  • each project has a page
  • a project’s tasks are on that page, some of which are dated, some are not
  • there are 2 other pages for misc work and personal tasks
  • otherwise, tasks are nowhere else

Goal: Be able to query all tasks due today, or overdue.

Tracking page is @today. It has

    (/- \[ \].*2021-01-28.*/) 

A simple matter of updating the date each day.

When previewed, brings up all tasks that are dated today.

But what about yesterday and tasks I may have missed? There are 2 options here.

  1. Update the dates on all tasks from yesterday, then update date on query. Some due yesterday may not necessarily be due today so this is good discipline.
  2. Modify the query to
    (/- \[ \].*2021-01-2[78].*/) 

which will pull up yesterday and today (adjust to suit).

The building blocks are there.

Glad you’re making progress!

I could also make the date range query builder an option in the content section. That way you could use the plugin to search for “lines with links to yesterday or today” and it’ll generate e.g., line:(- [ ] [[2021-01-27]] [[2021-01-28]]). (Typing that on my phone, but you hopefully get the gist.)

2 Likes

Wow. Great! I’ll try it right now! Thank you, very much!

And yes, I struggled with the command palette as well. Would it be possible to place a button somewhere? I love buttons :smiley:

Thanks for reporting though—I’ll make a note to clarify how to access it in the readme.

Just for you: see the 1.1.0 release for a Vantage button in the app ribbon!

(Easy to do—should’ve provided it from the start. Sorry!)

Beautiful :clap: :clap: :clap:

Question: Can you suggest a way to hide the rather complicated search string at the top of the query result display? @ryanjamurphy