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>solr delete -c My_Collection
2) 从 Solr 管理控制台:
/admin/collections?action=DELETE&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
然后用
重启solrbin/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:如何删除一个集合?的主要内容,如果未能解决你的问题,请参考以下文章