lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Allison, Timothy B." <talli...@mitre.org>
Subject RE: SpanQuery - How to wrap a NOT subquery
Date Mon, 20 Jun 2016 19:53:44 GMT
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.brandon@gmail.com]
Sent: Monday, June 20, 2016 2:36 PM
To: dev@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
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message