Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ApacheSolr中添加多个负连接?_Solr_Solr Query Syntax - Fatal编程技术网

如何在ApacheSolr中添加多个负连接?

如何在ApacheSolr中添加多个负连接?,solr,solr-query-syntax,Solr,Solr Query Syntax,我想将雇佣日期在2020年1月1日之后且状态为“有效”的员工从奖金收集中排除。所以我需要对employee集合进行一个负联接,并有两个条件。这是我的样品 join q: bonus>0 fq: -{!join from = employeeid to = employeeid fromIndex = employee}(hiredate:["01/01/2020" to *] AND status:active) 我尝试了上面的查询,但是它返回以下错误 “org.apache.solr

我想将雇佣日期在2020年1月1日之后且状态为“有效”的员工从奖金收集中排除。所以我需要对employee集合进行一个负联接,并有两个条件。这是我的样品

join

q: bonus>0
fq: -{!join from = employeeid to = employeeid fromIndex = employee}(hiredate:["01/01/2020" to *] AND status:active)
我尝试了上面的查询,但是它返回以下错误

“org.apache.solr.search.SyntaxError:无法分析 “(hiredate:[“01/01/2020”至]”:在第1行遇到\“\”, 第15列。\n应为:\n…\n…\n
…\n\“+\”…\n\“-\”…\n…\n\”(\” “…\n\”\“…\n\”\“…\n\“^\”…\n…\n
…\n…\n…\n …\n…\n\“[\”…\n\“{\”…\n …\n\“过滤器(\”…\n…\n“

谢谢,
Gaurav

您也可以将
奖金
索引到员工索引中,这样您就只需要在其上应用一个简单的fq。您使用的
hiredate
格式也不会达到您预期的效果。您似乎已将其索引为字符串(日期的格式必须类似于
YYYY-MM-DDTHH:MM:SSZ
)。当使用
TO
(应该大写)时,它会给您任何在
01/01/2020
之后排序的标记-表示任何以
02
开头的标记,无论年份如何。为了简化问题,solr在尝试对多个字段执行负联接时抛出一个错误,例如-{!join from=employeeid to=employeeid fromIndex=employee}状态:active工作正常,但是-{!join from=employeeid to=employeeid fromIndex=employee}(名称:“XYZ”且状态:active)引发错误。当我们从联接中删除-时,同样适用于正联接。请建议