我一直在使用SOLR 4.10.2,并准备迁移到7.1
在4.10.2下,我能够使用以下内容清除索引:
var address = @"http://mysolrserver:8983/solr/mysolrcore/update?stream.body=<delete><query>(*:*)</query></delete>&commit=true";
WebClient client = new WebClient();
client.DownloadString(address).Dump();
当我在SOLR 7.1服务器上尝试此操作时,收到响应400 - 错误请求。
{
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.common.SolrException"],
"msg":"Stream Body is disabled. See http://lucene.apache.org/solr/guide/requestdispatcher-in-solrconfig.html for help",
"code":400}}
我进入了solrconfig.xml以获取核心并将元素设置为
<requestParsers enableRemoteStreaming="true"
multipartUploadLimitInKB="2048000"
formdataUploadLimitInKB="2048"
addHttpRequestToContext="false"/>
但我仍然得到同样的错误。
由于7.1现在默认为json,我尝试添加
&wt=xml
到网址的末尾,但我得到了相同的结果:400 - 错误请求
有什么想法吗?
答案 0 :(得分:1)
您正在切换错误的参数。如果您想在网址中允许enableStreamBody="true"
,则必须设置enableRemoteStreaming
。 stream.file
控件stream.url
和location ~ ^/foo1(/.*)?$ {
return 301 /foo2$1$is_args$args;
}
可用于从远程位置读取。
答案 1 :(得分:1)
删除查询后,我在邮递员电话下面运行。
http://localhost:8983/solr/CORENAME/config -H 'Content-type:application/json' -d'{
"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true},
"set-property" : {"requestDispatcher.requestParsers.enableStreamBody":true}
}'