如何通过curl查询删除SOLR索引数据?

时间:2012-01-03 23:00:11

标签: curl solr schema http-delete

我有一个像这样的SOLR schema.xml:

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

我想用curl命令从SOLR数据库中删除“blue”和“stationwagon”标记的记录。

但是我没有用以下命令做到这一点:

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

你有什么建议吗?

3 个答案:

答案 0 :(得分:30)

您必须添加query代码。

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

答案 1 :(得分: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>添加到查询字符串中。

答案 2 :(得分:0)

使用JSON代替XML:

curl -g "http://localhost:8983/solr/$core/update" \
     -H 'Content-Type: application/json' \
     -d '{"delete":{"query":"field:value"}}'