2012-01-03 33 views
16

我有一个SOLR schema.xml中是这样的:如何通过curl查询删除SOLR索引数据?

<field name="cartype" type="lowercase" indexed="true" stored="true"/> 
<field name="color" type="lowercase" indexed="true" stored="true"/> 

我要删除“蓝色”和“旅行车”标记从SOLR数据库记录有curl命令。

但我没有做到这一点与下面的命令:

curl http://46.231.77.98:7979/solr/update/?commit=true -H "Content-Type: text/xml" -d "<delete>(cartype:stationwagon)AND(color:blue)</delete>" 

你有什么建议吗?

回答

27

您必须添加query标记。

<delete><query>(cartype:stationwagon)AND(color:blue)</query></delete> 
+0

谢谢,它的工作原理。 – 2012-01-04 16:07:23

+0

这相当于'+ cartype:旅行车+颜色:蓝色'吗? – devios1 2013-06-10 23:51:57

1

这样会更容易:curl "http://46.231.77.98:7979/solr/collection/update/?commit=true&stream.body=<delete><query>(cartype:stationwagon)AND(color:blue)</query></delete>"

这是一个简单GET请求,你刚才的参数
stream.body=<delete><query>(cartype:stationwagon)AND(color:blue)</query></delete>添加到查询字符串。