Hi Jani, On Sat, Jul 18, 2015 at 06:53:53PM +0300, Jani Nikula wrote: > On Jul 18, 2015 6:32 PM, "Suvayu Ali" <fatkasuvayu+linux@gmail.com> wrote: > > On Sat, Jul 18, 2015 at 10:54:30AM -0400, Xu Wang wrote: > > > > > > First note that I believe notmuch search is case insensitive by > > > default, so your grep should be case insensitive as well. > > > > Good point, I tried that, didn't change the numbers much. The number of > > matches from grep went up to 24, whereas notmuch count says 463. > > > > > More importantly, I'm not sure how 'no NEAR "plain text" ' syntax is > > > parsed. Maybe it is parsed as {no NEAR plain} or {text}. > > > > > > > Exactly, that's what I do not understand. > > > > export NOTMUCH_DEBUG_QUERY=1 > > might help. That helped a lot! This is what I get: $ notmuch count -- no NEAR \"plain\ text\" Query string is: no NEAR "plain text" Exclude query is: Xapian::Query() Final query is: Xapian::Query((Tmail AND Zno:(pos=1) AND near:(pos=2) AND Zplain:(pos=3) AND text:(pos=4))) 465 $ notmuch count -- \"plain\ text\" Query string is: "plain text" Exclude query is: Xapian::Query() Final query is: Xapian::Query((Tmail AND (plain:(pos=1) PHRASE 2 text:(pos=2)))) 870 I wanted the "plain text" to be treated as a phrase, as in the second case. I have tried nesting the quotes. The closest I got to was this: $ notmuch count -- no NEAR 'plain\ text' Query string is: no NEAR plain\ text Exclude query is: Xapian::Query() Final query is: Xapian::Query((Tmail AND (no:(pos=1) NEAR 11 plain:(pos=2)) AND Ztext:(pos=3))) 151 I then tried this: $ notmuch count -- no NEAR \(plain ADJ/1 text\) Query string is: no NEAR (plain ADJ/1 text) Exclude query is: Xapian::Query() Final query is: Xapian::Query((Tmail AND Zno:(pos=1) AND near:(pos=2) AND Zplain:(pos=3) AND (adj:(pos=4) PHRASE 2 1:(pos=5)) AND Ztext:(pos=6))) 0 Again, this is not what I was expecting. With the last one, I was expecting to group "plain" and "text" within a distance of 1, in the given order, and then requring "no" to be near (within 10 words, the default) the "plain ADJ/1 text" combination. Is my understanding of the query language completely wrong? Apart from `man notmuch-search-terms', I looked here: http://xapian.org/docs/queryparser.html Thanks for any help. Cheers, -- Suvayu Open source is the future. It sets us free.