Week 5: Project Search Engine

There are some important syntax changes:

  1. and/or will not be explicitly specified in the query.
    By default, all the search terms will be connected by and in the backend (notebook is the only exception).
    eg. tag:t1 tag:t2 will mean return all notes with tags t1 and t2.

  2. You can use the any operator if you want the search terms connected by or instead.
    eg. any:1 tag:t1 tag:t2 which means return the notes that have t1 or t2.
    (Think of any like a switch which will flip the default from and to or)

  3. notebook operators are always connected with or (It ignores any). This makes sense since a note can’t belong to multiple notebooks.
    eg. notebook:n1 notebook:n2 will restrict the search to notebooks n1, n2.

  4. You can still use - to negate the operator.
    tag:t1 -tag:t2 all notes that have tag t1 and don’t have tag t2.
    any:1 tag:t1 -tag:t2 all notes that have tag t1 or don’t have tag t2.
    title:t1 -body:b1 all notes that have t1 in the title but don’t contain b1 in the body.
    title:abc -unicorn all notes with a title containing ‘abc’ but don’t have ‘unicorn’ in the body.

  5. created/updated operators got a syntax change.
    created:20201215 will return all notes created on and after December 15, 2020.
    -created:20201215 will return all notes created on and before December 15, 2020.
    Multiple created/updated can be used in the same query.
    created:19970501 -created:20200101
    will return notes created between May 1, 1997, and January 01, 2020.
    Partial dates are supported.
    created:1997 -created:202001
    Along with smart values.
    created:week-3 -created:day-2