本文主要記錄solr使用中遇到的一些常見問題及命令
關於solrConfig.xml的配置博客:https://blog.csdn.net/yuh_LLllccy/article/details/88552673
solr查詢報錯:
問題1:solr查詢三萬條以上的數據時報錯
"error": { "msg": "Expected mime type application/octet-stream but got application/xml. <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<response>\n<lst name=\"error\"><str name=\"msg\">application/x-www-form-urlencoded content length (2750536 bytes) exceeds upload limit of 2048 KB</str><int name=\"code\">400</int></lst>\n</response>\n", "code": 400 } |
解決方案:修改solrConfig.xml formdataUploadLimitInKB參數
分析:solr爲了保證其快速的查詢效果,會默認限制你查詢數據的數據量,需要對solrConfig.xml進行手動配置。
formdataUploadLimitInKB - 表單通過POST請求發送的最大size,設置了一個用Kb表示的限制,用以限制HTTP POST請求中提交的表單數據的大小,這個大小可以用來傳遞請求的參數但並不適合(寫入)URL中
<-- 修改 formdataUploadLimitInKB="9999999" 默認爲 2048 -->
<requestParsers enableRemoteStreaming="true"
multipartUploadLimitInKB="2048000"
formdataUploadLimitInKB="9999999"
addHttpRequestToContext="false"/>
若你需要查詢布爾值的句子報錯可以修改下圖參數。
注意:有些參數爲全局參數,需要對所有的核心進行配置,否則重啓無法生效。下面是關於配置文件更新方法:
1)創建solr實體配置文件本地目錄,tsolr會自動創建
# solrctl instancedir --generate /opt/tsolr
創建後會在tsolr目錄下生成一個conf文件夾,裏面是相關配置文件。
2)創建collection實例並配置文件上傳到zookeeper
# solrctl instancedir --create tsolr /opt/tsolr
注意:之前如果有創建過,需要先刪除再創建,或者覆蓋更新
(# solrctl instancedir --list ) //查看所有配置文件
(# solrctl instancedir --update tsolr /opt/tsolr) //覆蓋更新
4)上傳到zookeeper之後,其他節點就可以從zookeeper下載配置文件。接着創建collection
# solrctl collection --create tsolr -s 15 -r 2 -m 50
(紅色參數表示s表示設置Shard數爲15,-r表示設置的replica數爲2,-m表示最大shards數目,collection名稱是tsolr!)