1

我想删除 Solr 集合中的所有索引数据,最好是通过其中一个节点本身的 shell 命令。我怎样才能做到这一点?

4

2 回答 2

5

如果您有权访问 shell,请使用solrctl带有以下选项的命令:

solrctl collection --deletedocs <collection-name>

以下是完整的使用输出solrctl --help供参考:

usage: /usr/bin/solrctl [options] command [command-arg] [command [command-arg]] ...

Options:
    --solr solr_uri
    --zk   zk_ensemble
    --help
    --quiet

Commands:
    init        [--force]

    instancedir [--generate path]
                [--create name path]
                [--update name path]
                [--get name path]
                [--delete name]
                [--list]

    collection  [--create name -s <numShards>
                              [-c <collection.configName>]
                              [-r <replicationFactor>]
                              [-m <maxShardsPerNode>]
                              [-n <createNodeSet>]]
                [--delete name]
                [--reload name]
                [--stat name]
                [--deletedocs name]
                [--list]

    core        [--create name [-p name=value]...]
                [--reload name]
                [--unload name]
                [--status name]

如果您没有直接访问权限,则可以使用此处此处此处所述的 Solr 更新服务。

于 2014-09-05T15:13:36.167 回答
0

您可以将以下命令用于命令提示符

curl http://<ip_address>:8983/solr/<collection_name>/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8';

于 2014-11-10T07:56:16.787 回答