如何通过 curl 查询删除 SOLR 索引数据?
Posted
技术标签:
【中文标题】如何通过 curl 查询删除 SOLR 索引数据?【英文标题】:How to delete SOLR indexed data by query with curl? 【发布时间】:2012-02-01 22:34:54 【问题描述】:我有一个这样的 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>"
你有什么建议吗?
【问题讨论】:
【参考方案1】:你必须添加query
标签。
<delete><query>(cartype:stationwagon)AND(color:blue)</query></delete>
【讨论】:
这是否等同于+cartype:stationwagon +color:blue
?【参考方案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>
。
【讨论】:
【参考方案3】:使用 JSON 代替 XML:
curl -g "http://localhost:8983/solr/$core/update" \
-H 'Content-Type: application/json' \
-d '"delete":"query":"field:value"'
【讨论】:
以上是关于如何通过 curl 查询删除 SOLR 索引数据?的主要内容,如果未能解决你的问题,请参考以下文章