我试图在我的测试开始时运行一个 solr 查询以获得一堆列表,然后我将在测试运行中使用它们。
如果我在 Chrome 中提出这个请求,我会得到 json 响应:
MYAPIDOMAIN /solr/listings/select?q=category:commercial+AND+property_type:office&fl=listing_id,listing_status&group=true&group.main=true&group.field=listing_status&group.limit=1&rows=100&wt=json&indent=on
在测试中,我使用 Spring RestTemplate 进行调用,然后解析 JSON 响应,它适用于我的一些查询,但对于这个我只是得到一个错误:
"responseHeader":{
"status":400,
"QTime":7,
"params":{
"q":"category:commercial%2BAND%2Bproperty_type:office",
"group.main":"true",
"indent":"on",
"fl":"listing_id,listing_status",
"group.limit":"1",
"rows":"100",
"wt":"json",
"group.field":"listing_status",
"group":"true"}},
"error":{
"msg":"org.apache.solr.search.SyntaxError: Cannot parse 'category:commercial%2BAND%2Bproperty_type:office': Encountered \" \":\" \": \"\" at line 1, column 41.\nWas expecting one of:\n <EOF> \n <AND> ...\n <OR> ...\n <NOT> ...\n \"+\" ...\n \"-\" ...\n <BAREOPER> ...\n \"(\" ...\n \"*\" ...\n \"^\" ...\n <QUOTED> ...\n <TERM> ...\n <FUZZY_SLOP> ...\n <PREFIXTERM> ...\n <WILDTERM> ...\n <REGEXPTERM> ...\n \"[\" ...\n \"{\" ...\n <LPARAMS> ...\n <NUMBER> ...\n ",
"code":400}}
我对我刚刚在测试中使用的 solr 查询一无所知,显然这是一个编码问题,但我不知道在哪里。我尝试使用 URLEncoder,我发现了一些在线 url 编码器,但似乎没有任何东西可以正常工作。
有人可以告诉我这有什么问题吗?我还有 5 个查询需要做,所以我真的需要修复。
谢谢