我有一个 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库查询,提供相同的错误输出。
答案 0 :(得分:1)
您可以通过将整个值包含在""
,forth_filter:"forth value"
或使用\
:forth_filter:forth\ value
中来转义空格。