2 回答

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

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