本文主要记录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!)