solr

时间:2016-11-23 08:44:57

标签: curl solr solr4

我有一个 solr4.8.0 服务器的查询(使用curl):

curl -g "http://192.168.0.70:8983/solr/solr_db/select?q=*:*&fl=some,fields,here&start=0&rows=5&fq=first_filter:first_value&fq=time_filter:[2016-11-21T22:00:00Z%20TO%202016-11-22T21:59:59Z]&fq=third_filter:third-value&fq=forth_filter:forth%20value"

如您所见,对于第四个查询过滤器(forth_filter:forth%20value),有一个包含空格的值。我使用URL转义方法(%20)对此进行了转义。我在使用time_filter进行此转义之前使用过。

此查询出错:

  

“错误”:{

     

“msg”:“查询中未指定字段名称,并且未通过'df'param指定默认值”,

     

“代码”:400}

     

}

问题描述: 该错误是由forth_filter引起的。我知道这个,因为如果我删除它,一切正常。而且,如果我删除所有其他过滤器,但保留它,它仍然不起作用,导致相同的错误。 任何人都可以指导我如何解决这个问题吗?

N.B。我通过 PHP 查询 solr ,但为了解决这个问题,我首先通过curl进行尝试。通过PHP库查询,提供相同的错误输出。

1 个答案:

答案 0 :(得分:1)

您可以通过将整个值包含在""forth_filter:"forth value"或使用\forth_filter:forth\ value中来转义空格。