如何使用SOLR Admin删除SOLR索引中的所有文档。
我尝试使用网址但它有效,但想知道是否可以使用管理员完成相同的工作..
答案 0 :(得分:51)
更新:使用此答案可以更好地使用较新版本的Solr:https://stackoverflow.com/a/48007194/3692256
我的原始答案如下:
我有点作弊,但没有像手工编写查询那么多。
由于我之前经历过意外删除的痛苦,我尽可能地尽可能地删除我的删除(在任何类型的数据存储中)。
1)在Solr管理查询屏幕中运行查询,仅使用" q"左上角的参数。将其缩小到您确实要删除的项目。对于此示例,我使用*:*
,但您可以使用id:abcdef
或范围等内容。如果你有一个疯狂的复杂查询,你可能会发现它更容易多次执行,一次是你要删除的数据的每一部分。
2)在结果的顶部,有一个灰色的URL。如果将鼠标悬停在它上面,它会变黑。这是用于获取结果的URL。右键(上下文)单击它并在新选项卡/窗口中打开它。你应该得到类似的东西:
http://localhost:8983/solr/my_core_name/select?q=*%3A*&wt=json&indent=true
现在,我希望将其变为删除格式。我将select?q=
替换为update?commit=true&stream.body=<delete><query>
,最后将&wt=json&indent=true
替换为</query></delete>
。
所以我最终得到了:
http://localhost:8983/solr/my_core_name/update?commit=true&stream.body=<delete><query>*%3A*</query></delete>
深吸一口气,为了好运做任何事情,然后提交网址(输入关键作品)。
现在,您应该可以返回Solr管理页面并运行原始查询并获得零结果。
答案 1 :(得分:43)
在Solr管理界面的文档标签中使用以下查询之一:
<强> XML:强>
<delete><query>*:*</query></delete>
<强> JSON:强>
{'delete': {'query': '*:*'}}
请务必选择Document Type
下拉到Solr Command (raw XML or JSON)
。
答案 2 :(得分:11)
答案 3 :(得分:6)
curl http://localhost:8080/solr/update -H "Content-type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
curl http://localhost:8080/solr/update -H "Content-type: text/xml" --data-binary '<commit />'
&#13;
答案 4 :(得分:1)
仅当您要删除多个集合中的所有文档而不是选择性删除时,此解决方案才适用:
我有一个相同的场景,我需要删除多个集合中的所有文档。每个分片中有近50万个文档,每个集合中有多个分片。使用查询更新和删除文档是一项艰巨的任务,因此请遵循以下过程:
http://<solrIP>:<port>/solr/admin/collections?action=clusterstatus&wt=json
这提供了详细信息,例如集合名称,numShards,配置名称,router.field,maxShards,replicationFactor等。http://<solr-ip>:<port>/solr/admin/collections?action=BACKUP&name=myBackupName&collection=myCollectionName&location=/path/to/my/shared/drive
http://<solr-ip>:<port>/solr/admin/collections?action=DELETEALIAS&name=collectionname
http://<solr-ip>:<port>/solr/admin/collections?action=CREATE&name=collectionname&numShards=number&replicationFactor=number&maxShardsPerNode=number&collection.configName=configname&router.field=routerfield
我对所有集合循环执行了上述步骤,并在几秒钟内完成了大约100个具有大量数据的集合。另外,我也为所有馆藏设置了备份。
有关其他Solr API的相关信息,请参见:DELETEALIAS: Delete a Collection Alias, Input
答案 5 :(得分:0)
在集合文档选项卡上选择 XML 并更新以下参数。
<delete><query>*:*</query></delete>