'How to delete SOLR indexed data by query with curl?

I have a SOLR schema.xml like this:

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

I want to delete "blue" and "stationwagon" tagged records from SOLR database with a curl command.

But I didn't do that with following command :

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

Do you have any suggestions?



Solution 1:[1]

You have to add query tag.

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

Solution 2:[2]

Using JSON instead of XML:

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

Solution 3:[3]

In this way would be easier:

curl -g "http://localhost:8983/solr/collection/update" \
     -d '<delete><query>(cartype:stationwagon)AND(color:blue)</query></delete>'

curl "http://localhost:8983/solr/collection/update?commit=true"

It's a simple POST request.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 robingrindrod
Solution 2 d-_-b
Solution 3