Bouncing over to user’s list. As you’ve found, spans are different from regular queries. MUST_NOT at the BooleanQuery level means that the term must not appear anywhere in the document; whereas spans focus on terms near each other.
Have you tried SpanNotQuery? This would allow you at least to do something like: termA but not if zyx or yyy appears X words before or Y words after From: Brandon Miller [mailto:computerengineer.bran...@gmail.com] Sent: Monday, June 20, 2016 2:36 PM To: d...@lucene.apache.org Subject: SpanQuery - How to wrap a NOT subquery Greetings! I'm wanting to support this: TermA within_N_terms_of (abc and cba or xyz and not zyx or not yyy) Focusing on the sub-query: I have ANDs and ORs figured out (special tricks playing with slops and such). I'm having the hardest time figuring out how to wrap a NOT. Outside of SpanQuery, I'm using a BooleanQuery with a MUST_NOT clause. That's fine (if you know another way, I'd like to hear that, too, but this appears to work dandy). However, SpanQuery requires queries that are also of type SpanQuery or SpanMultiTermQueryWrapper will allow you to throw in anything derived from MultiTermQuery (which includes AutomatedQuery). Right now, I'm at a loss. We have huge, complex, nested boolean queries inside proximity operators with our current solution. If I need to write a custom solution, then that's what I need to hear and perhaps a couple of pointers. Thanks a bunch and God bless! Brandon