我在solr工作,我想在SOLR中使用UNION和MINUS的组合。我已经制定了oracle查询。
select * from TESTTABLE where (FT = 'PE' and emis between 10 and 20) or (FT = 'DI' and emis between 10 and 15)
union (
select * from TESTTABLE where (FT <> 'PE' or emis not between 10 and 20) and (FT <> 'DI' or emis not between 10 and 15)
minus
select * from TESTTABLE where (FT = 'PE' and emis not between 10 and 20) or (FT = 'DI' and emis not between 10 and 15)
);
我想制定一个等效的SOLR。请帮助我将oracle查询转换为SOLR。
答案 0 :(得分:1)
你应该能够在Solr中构建它,只需要考虑到:
答案 1 :(得分:0)
因此,对于您的示例:在年龄范围为10和25的漫画和电影制作中获取图书并假设三个字段bookName,bookType和age我将执行以下操作: -
q = bookType:漫画书类型:影视作品&amp; fq =年龄:[10 to 25]
主查询中的2个bookType子句之间没有间隙意味着OR。即带上漫画或电影。过滤查询中的年龄范围,即fq过滤掉年龄介于10和25之间的结果。