我在Centos中部署了solr 3.6.1。现在我可以搜索文档,但是我无法在solr中删除文档。
solrconfig.xml的相关部分如下:
<requestHandler name="/update" class="solr.UpdateRequestHandler">
</requestHandler>
<requestHandler name="/update/csv" class="solr.CSVRequestHandler" >
<lst name="defaults">
<str name="seperator">,</str>
<str name="header">true</str>
<str name="encapsulator">"</str>
</lst>
</requestHandler>
当我输入此网址时
http://localhost:8080/solr/update/?stream.body=<delete><id>123</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true
在我的浏览器中,结果是:
type Status report
message: /solr/update
description: The requested resource is not available
但是,update / csv处理程序工作正常。
我想知道solrconfig.xml中的配置有问题吗?
感谢任何建议!
答案 0 :(得分:2)
最后,我找到了答案! 当我将更新处理程序conf更改为:
时<requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
有效!
答案 1 :(得分:0)
UpdateXmlMessages via GET州的Solr Wiki上的示例
也可以使用GET请求发送短更新请求(需要进行URL编码)
所以我会尝试以下内容,例如
http://localhost:8080/solr/update/?stream.body=%3Cdelete%3E%3Cid%3E123%3C/id%3E%3C/delete%3E
http://localhost:8080/solr/update/?stream.body=%3Ccommit/%3E
答案 2 :(得分:0)
也许您可以尝试将其更新为json;
curl 'http://<your_url>/solr/<yourcorename>/update?commit=true' -H 'Content-type:application/json' -d '[{"id":"123","field_1":{"set":899.99}, "field_2":{"set":123}}]'
id是必须更新的字段。