我正在使用Solr 6.1.0,我正在将父子数据索引到Solr。
当我进行查询时,我使用Block Join Parent Query Parser,只返回父记录,而不返回任何子记录,即使子记录中可能存在匹配。
但是,我无法对子记录执行范围查询。例如,如果我使用此查询进行搜索 q = + title:join + {!parent which =“content_type:parentDocument”} range_f:[2 to 8]
我会收到以下错误:
{
"responseHeader":{
"zkConnected":true,
"status":400,
"QTime":3},
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.parser.ParseException"],
"msg":"org.apache.solr.search.SyntaxError: Cannot parse 'range_f:[2': Encountered \"<EOF>\" at line 1, column 18.\r\nWas expecting one of:\r\n \"TO\" ...\r\n <RANGE_QUOTED> ...\r\n <RANGE_GOOP> ...\r\n ",
"code":400}}
这可能是什么问题?
的问候,
埃德
答案 0 :(得分:0)
尝试:
q = + title:join + _query:&#34; {!parent which = \&#34; content_type:parentDocument \&#34;} range_f:[2 to 8]&#34;
答案 1 :(得分:0)
您不能在联接查询之前有任何空格,这样就可以了
{!parent which="content_type:parentDocument"}range_f:[2 TO 8]
解决此问题的一种方法是将范围查询移至fq参数而不是q参数。