我想在我的測試開始時運行一個solr查詢以獲得一堆列表,然後我將使用在測試運行中。Solr查詢在瀏覽器中工作,但不使用RestTemplate org.apache.solr.search.SyntaxError:無法解析
如果我提出這個要求在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個需要做的查詢,所以我確實需要修復。
謝謝
謝謝你完美的作品! – MisterMan
@MisterMan太棒了 –