Solr:如何删除一个集合?

Posted

技术标签:

【中文标题】Solr:如何删除一个集合?【英文标题】:Solr: how to delete a collection? 【发布时间】:2014-09-23 13:52:18 【问题描述】:

我使用的是 solr 4.9,没有添加任何额外的分片,只是使用它附带的任何默认值。我创建了一个集合并尝试使用以下 api 将其删除:

http://<host>/solr/admin/collections?action=DELETE&name=collectionName

但它返回错误:

Solr 实例未在 SolrCloud 模式下运行

我的 Solr 不是 solrCloud,但是如何删除我的收藏?

【问题讨论】:

【参考方案1】:

在最新版本的 Solr 中,您可以通过三种方式删除集合。

    您可以使用bin/solr 工具手动删除集合 您可以通过 Solr Admin 手动删除集合 您可以使用 Collections API 删除集合 您可以使用 V2 API 删除集合

使用bin/solr 工具删除集合很简单。你进入你的SOLR_HOME 目录并运行:

bin/solr delete -c COLLECTION_NAME

要使用 Collections API 删除集合,您需要运行如下命令:

curl 'localhost:8983/solr/admin/collections?action=DELETE&name=COLLECTION_NAME'

最后,要使用 V2 API 并使用它删除集合,您需要执行以下操作:

curl -XDELETE 'http://localhost:8983/api/c/COLLECTION_NAME'

如果您打算很少删除集合,则可以手动执行此操作。如果这是常用的 - 例如别名和基于时间的数据,我建议使用 V2 API,因为这是最新的 API,可能会在某个时候取代旧的 API。

【讨论】:

【参考方案2】:

虽然 Adam 的回答是正确的,但以下是帮助使用它的文档:https://lucene.apache.org/solr/guide/7_7/collections-api.html#delete

我在这个问题上停留了一段时间,只是得到了无效删除核心答案,我猜这曾经适用于集合,但在较新的版本中没有。

【讨论】:

【参考方案3】:

您可以通过两种方式删除Solr Collection。

1) 从命令提示符:

从您提取Apache Solr 的位置启动命令提示符。运行以下命令

Solr\bin&gt;solr delete -c My_Collection

2) 从 Solr 管理控制台:

/admin/collections?action=DELETE&amp;name=collection

有关Apache Solr Collection API 的更多信息。 Apache Solr Collection API

【讨论】:

【参考方案4】:

你可以使用 curl

curl -X GET -H "Content-Type: application/json" "http://localhost:8983/solr/admin/cores?wt=json&action=UNLOAD&core=gettingstarted"

gettingstarted 是您要删除的核心的名称。 请注意,以上假设 solr 在端口 8983 上运行。

【讨论】:

【参考方案5】:

n.b. 已针对 Solr 4.9 进行测试,应该适用于较新的版本。

curl -v http://localhost:8983/solr/admin/cores?action=UNLOAD&deleteInstanceDir=true&core=collectionName

【讨论】:

这适用于核心,而不是集合。请参阅 Adam Seabridge 的帖子【参考方案6】:

或者使用 API 来代替:

http://localhost:8983/solr/admin/collections?action=DELETE&collection=collection1&shard=shard1&replica=core_node1

【讨论】:

【参考方案7】:

转到 solr 文件夹并执行此操作..

bin/solr delete -c collection_name

然后用

重启solr
bin/solr restart

【讨论】:

对于重启命令,你必须指定端口选项,至少是默认端口,像这样:bin/solr restart -p 8983 我确实去了 solr fodler,但我得到的只是-bash: bin/solr: No such file or directory @Suraj 然后你可以使用. /solr delete -c collection_name 真的需要重启 Solr 吗?【参考方案8】:

根据本指南 (https://cwiki.apache.org/confluence/display/solr/Collections+API),此 API 仅在您处于 SolrCloud 模式时才有效。

如果您只想删除核心或仅删除该核心中的所有文档,请查看此处 - https://wiki.apache.org/solr/CoreAdmin

【讨论】:

以上是关于Solr:如何删除一个集合?的主要内容,如果未能解决你的问题,请参考以下文章

Solr 如何删除数组中除记录外的所有记录?

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

solr索引删除后索引文档数量未变

将 Solr 重复值删除到多值字段中

如何在 MongoDB 中删除或删除集合?

如何从List集合中删除对象