2 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先我要說的是 ... 并不是所有的牛奶都叫某某蘇 ... 也并不是所有的錯(cuò)誤都叫 404 ...
你的這個(gè)錯(cuò)誤是 '400' Status: Bad Request
... 而不是 404 ...
一般來說這個(gè)錯(cuò)誤出現(xiàn)的原因就如你所說 ... 是 schema.xml 中沒有定義 field ...
但是具體如何還要分析 ...
Apache_Solr_Service
這個(gè)類不會(huì)回傳 solr 的內(nèi)部錯(cuò)誤 ... 所以我們要用其他方式解決 ...
第一種方式比較簡(jiǎn)單 ... 查看 solr 的 log ... 會(huì)有類似于下面一行的內(nèi)容 ...
SEVERE: org.apache.solr.common.SolrException: ****
其中 **** 就是具體造成錯(cuò)誤的原因 ...
第二種方法 ... 使用 solr 自帶的一個(gè)工具叫 solr admin
...
在這個(gè)工具里你可以手動(dòng)輸入查詢 ... 如果查詢無效的話也會(huì)顯示出詳細(xì)的錯(cuò)誤信息 ...
以你描述的情況來說 ... 只需要輸入 name:????
然后點(diǎn)確定就好 ...
有了錯(cuò)誤信息才能知道如何解決這個(gè)問題 ... 不然只能靠東一榔頭西一棒子的猜測(cè) ... 費(fèi)時(shí)費(fèi)力 ...
只說 solr 報(bào)了錯(cuò) ... 你也不知道為什么只希望別人知道 ... 很遺憾 ... 我覺得沒有人會(huì)知道 ...
話可能說的有點(diǎn)重 ... 抱歉 ... 但道理是這樣 ...
先要學(xué)會(huì)良好的描述自己遇到的問題才能希望別人可以準(zhǔn)確高效的解決問題 ... 你說是不是 ..?

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
注意你在調(diào)用 Apache_Solr_Service()
構(gòu)造函數(shù)時(shí)的傳參。有一個(gè)陷阱是第五個(gè)參數(shù)即 $compatibilityLayer
需傳遞的參數(shù)應(yīng)根據(jù)你的 Solr 服務(wù)器版本進(jìn)行變化,如你是 Solr 4.0+ 應(yīng)傳遞 new Apache_Solr_Compatibility_Solr4CompatibilityLayer
。
原因是 Solr3 和 Solr4 生成的 XML 格式不同,有一些參數(shù)在使用時(shí)有兼容問題,從而觸發(fā) HTTP 400 Bad Request
問題。目前的 solr-php-client 默認(rèn)使用的是 Solr3 標(biāo)準(zhǔn)。
希望能幫助到你。
- 2 回答
- 0 關(guān)注
- 158 瀏覽
添加回答
舉報(bào)