Mailing List Archive

SQL OR in lucene : where ((term1=a and term2=b) OR (term3=a and term4=b)) and context in (2,3,4,5.....200)
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