23

我有一个这样的 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>"

你有什么建议吗?

4

3 回答 3

34

您必须添加query标签。

<delete><query>(cartype:stationwagon)AND(color:blue)</query></delete>
于 2012-01-04T00:21:59.673 回答
3

使用 JSON 而不是 XML:

curl -g "http://localhost:8983/solr/$core/update" \
     -H 'Content-Type: application/json' \
     -d '{"delete":{"query":"field:value"}}'
于 2020-09-23T01:08:43.257 回答
2

这样会更容易: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>到查询字符串中。

于 2017-04-20T09:45:29.107 回答