清除SOLR 7.1索引

时间:2017-11-27 17:47:40

标签: solr

我一直在使用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 - 错误请求

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您正在切换错误的参数。如果您想在网址中允许enableStreamBody="true",则必须设置enableRemoteStreamingstream.file控件stream.urllocation ~ ^/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}
}'