lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From András Péteri <apet...@b2international.com>
Subject Re: SQL OR in lucene : where ((term1=a and term2=b) OR (term3=a and term4=b)) and context in (2,3,4,5.....200)
Date Fri, 24 Aug 2018 13:52:40 GMT
 Hi Khurram,

My understanding is that once you add a MUST or FILTER clause to a boolean
query, SHOULD clauses become entirely optional, ie. none of them have to
match the document being returned, unless you also set the "minimum number
should match" property to a value >= 1 on the query.

This does not apply to boolean queries that consist purely of SHOULD
clauses, in which case at least one of them has to apply for each document
in the result set (and you can also tune the same property as above, to
modify this behavior).

Regards,
András


On Fri, Aug 24, 2018 at 3:34 PM, Tomoko Uchida <tomoko.uchida.1111@gmail.com
> wrote:

> Hi Khurram,
>
> Lucene query parser's OR operator or Occur.Should are work as expected
> for me, I suspect you could miss some points.
>
> > roughly in lucene
> > (+term1:a +term2:b) (+term3:a and +term4:b) #context:2 4 7 ... 198
>
> It does not look like an ordinary lucene query string to me ('#' is
> not an operator of StandardQueryParser or ClassicQueryParser,) which
> parser do you use?
> If you try to build a query by Java code, I suggest you post your
> exact code snippet.
>
> p.s. dev mailing list is not for user questions, you should post such
> questions to java-user list only, anyway. ;)
>
> Regards,
> Tomoko
>
> 2018年8月24日(金) 19:45 Khurram Shehzad <khurramx@outlook.com>:
> >
> > Hi,
> >
> >
> > I have a requirement to replicate following SQL query logic containing
> OR condition as
> >
> > where
> >
> > ((term1=a and term2=b) OR (term3=a and term4=b)) and context in
> (2,3,4,5.....200)
> >
> >
> > roughly in lucene
> >
> >
> > (+term1:a +term2:b) (+term3:a and +term4:b) #context:2 4 7 ... 198
> >
> >
> > It doesn't seem to me getting desired effect of "OR" logic using
> Occur.Should.
> >
> >
> > Above lucene query will retrieve all documents satisfying context
> condition and disregarding first two conditions.
> >
> >
> > But it can be workable, if I manage to apply context condition
> separately.
> >
> >
> > More probably using custom filtering through Collector interface
> https://lucene.apache.org/core/7_3_1/core/org/apache/lucene/
> search/Collector.html.
> >
> >
> > Any idea please.
> >
> >
> > Regards,
> > Khurram
>
>
>
> --
> Tomoko Uchida
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
-- 
András Péteri

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message