首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOLR中UNION和MINUS的用法

SOLR中UNION和MINUS的用法
EN

Stack Overflow用户
提问于 2017-06-14 16:30:30
回答 2查看 1.3K关注 0票数 0

我在SOLR工作,我想在solr中使用联合和减号的组合。我已经制定了oracle查询。

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2017-06-14 21:27:26

您应该能够在Solr中构建它,只需考虑:

  1. 你可以像在sql
  2. 中那样使用括号: just OR two conditions x OR y
  3. MINUS:只需使用AND NOT: X AND NOT y
  4. 记住将所有这些条件放在一个fq中,使用for Q
  5. 注意'NOT x',在solr中有时你需要一点技巧才能使其正常工作,请参阅here for examples。可能取决于solr版本
票数 1
EN

Stack Overflow用户

发布于 2017-06-17 01:34:27

因此,对于您的示例:获取年龄范围为10到25的漫画和电影摄影中的书籍,并假设有三个字段bookName,bookType和Age.我将执行以下操作:

q=bookType:Comics bookType:Filmography&fq=age:10 TO 25

主查询中的两个bookType子句之间没有空格表示OR。例如,带一部漫画或一部电影。并且过滤查询中的年龄范围,即fq,过滤出年龄不在10到25之间的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44539461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档