已禁用流主体

jfewjypa  于 2022-11-05  发布在  Solr
关注(0)|答案(3)|浏览(123)

我已经安装了apache solr 7.1,并使用postman工具来查询它。但是当我试图使用postman删除索引数据时,我得到以下错误。
请求:

GET http://localhost:8983/solr/solr-sample3/update?stream.body={
    "delete": {
        "query": "*:*"
    },
    "commit": { }
}

正文:

{
    "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
    }
}

它在以前的Solr版本Solr 6. 6中工作。我查看了Lucene文档,但我无法弄清楚它。

mtb9vblg

mtb9vblg1#

您不需要启用流主体,只需使用curl POST请求将数据类型指定为text/xml即可
curl http://localhost:8983/solr/solr-sample3/update?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
或者,如果您正在使用solr中包含的Post工具:

bin/post -c core_name -type text/xml -out yes -d $'<delete><query>*:*</query></delete>'
siv3szwd

siv3szwd2#

我浏览了文档,它说我需要启用流主体,因为它在Solr 7.1中已被禁用。
启用用途:

curl http://localhost:8983/solr/solr-sample3/config -H 'Content-type:application/json' -d'{
    "set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true},
    "set-property" : {"requestDispatcher.requestParsers.enableStreamBody":true}
}'
vlf7wbxs

vlf7wbxs3#

以下是我的工作方式,使用cURL并避免启用流主体:

curl http://localhost:8983/solr/solr-sample3/update?commit=true -X POST -H "Content-Type: text/xml" --data-binary "<delete><query>*:*</query></delete>"

相关问题