Konstantin Ryabitsev <konstantin@xxxxxxxxxxxxxxxxxxx> wrote: > On Mon, Nov 08, 2021 at 08:49:23PM +0000, Eric Wong wrote: > > Konstantin Ryabitsev <konstantin@xxxxxxxxxxxxxxxxxxx> wrote: > > > On Mon, Nov 08, 2021 at 01:49:07PM -0600, Rob Herring wrote: > > > > > > > lei q -I https://lore.kernel.org/all/ -o ~/Mail/floppy \ > > > > > --threads --dedupe=mid \ > > > > > '(dfn:drivers/block/floppy.c OR dfhh:floppy_* OR s:floppy \ > > > > > OR ((nq:bug OR nq:regression) AND nq:floppy)) \ > > > > > AND rt:1.month.ago..' > > > > > > > > I tried a similar one which I had working as a bookmark: > > > > That's actually treating the entire single-quoted section as > > a phrase search for Xapian. > > Hmm... I noticed that when I `lei edit-search` the initial query that was > causing quoting issues, I get the following: > > [lei] > q = (dfn:drivers OR dfn:arch OR dfn:Documentation OR dfn:include OR dfn:scripts) AND f:robh@xxxxxxxxxx > > So, the extra quotes didn't get added to the config file. Running `lei up` on > that saved search seems to do the right thing, so the erroneous quotes are > only added during the initial `lei q` call. Right, each entry in lei.q is actually an entry in argv[]. So the correct query should look something like: [lei] q = ( q = dfn:drivers/block/floppy.c q = OR ... > > The correct way to use '(', ')', and '*' on the command-line for > > Xapian is to shell escape them: > > But putting them into single quotes should accomplish the same result, no? At > least, that's how I've always understood shell escaping. Yeah, that works, too. As long as spaces/tabs don't show up within each argv[] element, it won't be interpreted as a phrase. I really wanted: lei q s:"a quick brown fox" to work from a shell like it would in the WWW UI; and thus deprioritized '(' and ')' working properly :x