lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jack Krupansky" <j...@basetechnology.com>
Subject Re: Combine two BooleanQueries by a SpanNearQuery.
Date Thu, 17 Jan 2013 17:33:59 GMT
Currently there isn't. SpanNearQuery can take only other SpanQuery objects, 
which includes other spans, span terms, and span wrapped multi-term queries 
(e.g., wildcard, fuzzy query), but not Boolean queries.

But it does sound like a good feature request.

There is SpanNotQuery, so you can exclude terms from a span.

-- Jack Krupansky

-----Original Message----- 
From: Michel Conrad
Sent: Thursday, January 17, 2013 12:14 PM
To: java-user@lucene.apache.org
Subject: Re: Combine two BooleanQueries by a SpanNearQuery.

The problem I would like to solve is to have two queries that I will
get from the query parser (this could include wildcardqueries and
phrasequeries).
Both of these queries would have to match the document and as an
additional restriction I would like to add that a matching term from
the first query
is near a matching term from the second query.

So that you can search for instance for matching documents with
in your first query 'apple AND NOT computer'
and in your second 'monkey'
with a slop of 10 between the two queries, then it would be equivalent
to '"apple monkey"~10 AND NOT computer'.

I was wondering if there is a method to combine more complicated
queries in a similar way. (Some kind of generic solution)

Thanks for your help,

Michel

On Thu, Jan 17, 2013 at 5:14 PM, Jack Krupansky <jack@basetechnology.com> 
wrote:
> You need to express the "boolean" query solely in terms of SpanOrQuery and
> SpanNearQuery. If you can't, ... then it probably can't be done, but you
> should be able to.
>
> How about starting with a plan English description of the problem you are
> trying to solve?
>
> -- Jack Krupansky
>
> -----Original Message----- From: Michel Conrad
> Sent: Thursday, January 17, 2013 11:01 AM
> To: java-user@lucene.apache.org
> Subject: Combine two BooleanQueries by a SpanNearQuery.
>
>
> Hi,
>
> I am looking to get a combination of multiple subqueries.
>
> What I want to do is to have two queries which have to be near one to
> another.
>
> As an example:
> Query1: (A AND (B OR C))
> Query2: D
>
> Then I want to use something like a SpanNearQuery to combine both (slop 
> 5):
> Both would then have to match and D should be within slop 5 to A, B or C.
>
> So my question is if there is a query that combines two BooleanQuery
> trees into a SpanNearQuery.
> It would have to take the terms that match Query 1 and the terms that
> match Query 2, and look if there is a combination within the required
> slop.
>
> Can I rewrite the BooleanQuery after parsing the query as a
> MultiTermQuery, than wrap these in SpanMultiTermQueryWrapper, which
> can be combined by the SpanNearQuery?
>
> Best regards,
> Michel
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org 


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message