Re: Query operators

Subject: Re: Query operators

Date: Mon, 29 Aug 2016 12:31:57 +0100

To: Yuri D'Elia, notmuch@notmuchmail.org

Cc:

From: Charlie Allom


You can debug what the real query is by adding NOTMUCH_DEBUG_QUERY=1 to
your search:

  12:29 YELP-CHARLIE~[local@2.7.12] % NOTMUCH_DEBUG_QUERY=1 notmuch search 'term1 (tag:term2 tag:term3)'
  Query string is:
  term1 (tag:term2 tag:term3)
  Exclude query is:
  Xapian::Query((Kdeleted OR Kspam OR Kmuted OR Kkilled OR Kjunk))
  Final query is:
  Xapian::Query(((Tmail AND Zterm1:(pos=1) AND 0 * (Kterm2 OR Kterm3)) AND_NOT (Kdeleted OR Kspam OR Kmuted OR Kkilled OR Kjunk)))
  12:29 YELP-CHARLIE~[local@2.7.12] %

On Mon, Aug 29 2016 at 11:29:03 AM, Yuri D'Elia <wavexx@thregr.org> wrote:

> Hi everyone,
>
> I'm a bit baffled by the query syntax. Reading the manual:
>
> ``Each term in the query will be implicitly connected by a logical AND
> if no explicit operator is provided (except that terms with a common
> prefix will be implicitly combined with OR).''
>
> I would have assumed that:
>
> term1 (tag:term2 tag:term3)
>
> would be equivalent to:
>
> term1 AND (tag:term2 AND tag:term3)
>
> but if I read carefully (and by looking at the query results), since
> tag: is a common prefix between term2 and term3, it is actually:
>
> term1 AND (tag:term2 OR tag:term3)
>
> am I right? Is this a feature of the xapian query syntax? (can it be
> tweaked to _unconditionally_ AND all terms?)
>
> For me, the idea that two terms can be ORed if the prefix is the same
> can cause queries to return unexpected results.
>
> What about:
>
> term1 xterm2 xterm3 term2
>
> Is this:
>
>   term1 AND (xterm2 OR xterm3) AND term2
>
> or is it:
>
>   term1 OR xterm2 OR xterm3 OR term2
>
> ?
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch

-- 

Thread: