Complex Query - Deferred Tasks

How can I make this search work in Dynalist:

-has:date OR
(has:date and -#defer) OR
( has:date #defer until:today )

I’m wanting to be able to defer tasks by writing something like: “#defer 2020-01-01”.

So this search says, “show me items ‘without dates’ or ‘with dates but not #defer’ or ‘with defer dates that have arrived’”

1 Like

Remove the “and”.

AND is implicit, every space can be understood was AND. With “and” you’re searching for “and” literally.

Hi,

I am having a similar issue regarding the set up of a complex query.
I want to be able to return items that:

  • Have at least one of the tags I specify AND
  • Are not completed AND
  • either do not have a date or if there is a date the date is in the future.

I tried the following:
(#home OR #laptop) -is:completed (until:now OR -has:date)

However I clearly get wrong results, as per the screenshot below:

Is there something I am missing?

Kind regards

Try this instead:

(until:now OR -has:date) #home -is:completed

For some reason, brackets are not acting right if it’s at the very end of the query.

Thanks Erica, but I am still getting an issue:

With (until:now OR -has:date) #home -is:completed I get the item Example #home !(2018-06-30) which has a date and is after now so should not appear.

image

Moreover, my eventual goal is to have a search of the type:
(until:now OR -has:date) (#tag1 OR #tag2 OR #tag3, etc) -is:completed

but then thee is not a single result, even if the following search is retrieving items!
(until:now OR -has:date) #tag1 -is:completed

Kind regards

Thanks for the reply, @Hicham_Tahiri, I see your problem. Let me ask our engineer.

@Shida: does our search system work with brackets at all? It might be caused by the brackets. Not sure if the brackets are working here. Things might not be grouped properly.

Yeah, so the current search filters doesn’t allow arbitrary AND/OR nesting, and parenthesis doesn’t work.

The way the search parsing currently works is

  1. The entire term is split by “OR” conditions
  2. Each part is split by the space character, and the AND operator is implicitly applied to them

So for example, “#work #due OR until:now” is parsed as:

  • [#work #due] OR [until:now]
  • [(#work) AND (#due)] OR [until:now]

But yeah, the OR operator currently only works on the outer-most level and cannot be nested.

2 Likes

Hi Shida,

Thank you for your quick answer. I am sorry if I do not realise the complexity of the issue, but would it be complicated to fix?

Kind regards

As of right now, we don’t have plans to make changes to the current system. It would be more complicated than a ‘fix’. For example, some people like to use parenthesis for tags, such as #work(urgent), so we can’t just simply recognize them as a grouping term instead of actually being part of the search query.

1 Like

With all due respect, that’s not a good reason to not fix this problem. Just use [ ] in the query and let users know these are special characters, like # and @. Being able to group [this that] OR [the other] would make searching much more powerful.

I was able to construct valid queries per the examples given. So fwiw I am posting my syntax constructs here…

The goal appears essentially to be able to string together “multiple ANDed elements” … “separated/combined by multiple OR statements”. I write and save a lot of complex filters (searches) and was concerned if I had missed this particular case (which not included in my personalized help section on this topic), so this post interested me a lot. Indeed, I was uncertain if several ANDed items was working, or correctly. SO …I constructed the suggested examples above and ran some tests.
The short of it is thus…

===
#1 was (until:now OR -has:date) AND #home AND -is:completed

SYNTAX used: until:now #home -is:completed OR -has:date -is:completed #home

If I understand the original post correctly, this is the solution for that one.

===
#2 was “show me items ‘without dates’ or ‘with dates but not #defer’ or ‘with defer dates that have arrived’”
Based on (like): -has:date OR (has:date and -#defer) OR ( has:date #defer until:today )

SYNTAX Used: -has:date OR has:date -#defer OR has:date #defer until:0d

I also tried variations of until: and within:
Again, if I understood the (second or third) challenge correctly, then this solves it.

===
I just wanted to be sure this was recorded here. Everything seems as it should be, albeit, grouping syntax would be (have been) so much less brain damage, but I understand why they did not do this (back when).

Its heartbreaking the Dynalist project is “parked”. What a great project and tool.
Cheers All.