SolrCloud 6.6.2 之 Collection API

1、Collection常用操作 api

1.1创建

http://192.168.1.35:9999/solr/admin/collections?action=CREATE&name=searchTest&numShards=4&replicationFactor=1&collection.configName=search

参数说明:

name:collection的名称
numShards:指定分片数量(slices)
replicationFactor:指定每个Shard副本数量
maxShardsPerNode:每个Solr服务器节点上最大Shard数量,默认值为1

注意三个数值:numShards、replicationFactor、liveSolrNode,一个正常的solrCloud集群不容许同一个liveSolrNode上部署同一个shard的多个replic,因此当maxShardsPerNode=1时,numShards*replicationFactor>liveSolrNode时,报错

因此正确时因满足以下条件:numShards*replicationFactor<liveSolrNode*maxShardsPerNode

collection.configName:指定该collection使用那份config,这份config必须存在于zk中。

createNodeSet:暂时不进行任何的 Shard 和 Replica 创建时,你需要添加额外的createNodeSet=EMPTY 参数
autoAddReplicas:赋值为true 即开启自动创建Replica

1.2修改

/admin/collections?action=MODIFYCOLLECTION&collectio=<collection-name>&<attributename>=<attribute-value>

参数说明:

action=MODIFYCOLLECTION 参数表示执行修改 Collection 操作, 
collection 参数用来指定你需要对哪个 Collection 进行修改 。 
<attribute-name>=<attribute-value>用于覆盖Collection创建时的一些参数,支持覆盖的参数有 : maxShardsPerNode 、 replicationFactor 、 autoAddReplicas 、 collection.configName 、 rule 、 snitch 。

1.3 删除Collection

http://localhost:8983/solr/admin/collections?action=DELETE&name=newCollection
参数说明:

name :表示想要删除的collection名称

async:通过制定一个异步请求ID,来开启异步操作

1.4 创建Collection别名

http://localhost:8983/solr/admin/collections?action=CREATEALIAS&name=testalias&collections=anothe
rCollection,testCollection
参数说明:

name:表示别名

collections:参数表示collection名称,可以为多个Collection指定一个别名,多个Collection之间名称采用逗号分隔。

async:CREATEALIAS支持异步请求。

1.5 删除Collection别名

/admin/collections?action=DELETEALIAS&name=name
说明:删除一个或者多个Collection对应的别名的API接口

name:表示别名

1.6 备份与恢复

备份接口地址:

/admin/collections?action=BACKUP&name=myBackupName&collection=myCollectionName&location=/path/to/my/shared/drive
参数说明:

name 参数表示备份名称,可以随意定义
collection 参数表示你需要对哪个 Collection执行备份操作
location 表示你需要将 Coll巳ction 备份文件保存到文件系统的什么路径下

恢复接口地址:

如果指定的目标Collection不存在,则其会自动创建,注意你不能对一个正在进行备份的Collection执行恢复操作 。 
备份恢复生成一个新Collection之后,生成的目标CQllection与原Collection拥有相同的Shard和Replica,以及相同的文档路由信息 。 
如果原Collection关联的配置文件目录在Zookeeper上存在,那么两者会共用一份,否则目标Collection会上传本地备份的配置文件到Zookeeper

/admin/collections?action=RESTORE&name=myBackupName&location=/path/to/my/shared/drive&collec
tion=myRestoredCollectionName

参数说明:
name 参数表示备份名称
location参数用于指定 Collection 备份文件的存放路径
collection 参数表示备份恢复后生成的目标 Collection 名称

1.7 分隔Shard

分割一个Shard会将Shard分成两块,每一块为一个子Shard 。 
被分割的原始Shard会继续包含原有的索引数据。当一个Shard正在执行Shard分割时,它仍然能够继续接收客户端的查询和索引请求,但是当Shard分割结束之后,后续的查询请求将会被路由到新Shard上。
新Shard会拥有跟旧Shard一样多的Replica。在Shard分割之后,不需要显式地执行commit(无论硬提交还是软提交)操作内部会隐式地执行一个软提交,这样保证了索引文档能够在新分割的子Shard上可见。

分割Shar只适合使用numShards参数创建的Collection,即默认显示路由(compositeId)方式创建

接口地址:

http://localhost:8983/solr/admin/collections?action=SPLITSHARD&collection=anotherCollection&shard=shard1

参数说明:

collection:即将被分割的collection名称
shard:该Collection下的分片名称
ranges:以十六进制表示的 Hash 范围区间,多个采用逗号分隔,比如 ranges=0-1 f4, I f5-3e8,3e9-5dc
split.key:用于分割索引的key
propertyName=value: 用于定义core的properties,可选参数
async:用于指定一个异步请求ID,当你指定了此参数即表示启用异步执行,建议启用,设置示例async=60000,60000 即你的异步请求 ID ,之后你可以根据这个异步请求 ID 获取 Shard 分割的执行结果,可选参数

1.8 创建Shard

创建一个新Shard只适用于使用隐式路由(implicit)的Collection,对于使用隐式路由的Collection而言,创建一个新Shard也只有通过此API进行创建。 
如果你的Collection使用的是compositeld路由,那么你只能使用SPLITSHARD操作Shard进行分割来生成新Shard。

接口地址:
/admin/collections?action=CREATESHARD&shard=shardName&collection=name

参数说明:

collection  表示集合名称,必须参数
shard   表示要创建的分片名称, 必须参数
createNodeSet 允许定义节点扩展新的集合。如果未提供,则创建操作将创建分片副本遍布所有活SOLR节点。格式是逗号分隔的列表,如:localhost:8983_solr,localhost:8984_solr,localhost:8985_solr 。非必须参数

1.9 删除Shard

删除一个Shard会卸载该Shard下的所有Replica,同时会将其从Zookeeper上的clusterstate.json中移除,默认还会删除该Shard下的每个Replica的instanceDir和dataDir目录 。
接口地址:

/admin/collections?action=DELETESHARD&shard=shardID&collection=name
参数说明:

collection 用于指定想要删除的 Shard 属于哪个 Collection
shard 用于指定想要删除的 S hard 的名称
deletelnstanceDir 是否同时删除每个 Replica 的 Core 目录,默认值 true ,可选参数
deleteDataDir 是否同时删除每个 Replica 的数据目录,默认值 true ,可选参数
deletelndex 是否同时删除每个 Replica 下的索引数据,默认值 true ,可选参数

2.0 创建一个 Replica

指定的 Collection 的某个 Shard 下添加一个 Replica(副本)

接口地址:

http://localhost:8983/solr/admin/collections?action=ADDREPLICA&collection=test2&shard=shard2&node
=192.167.1.2:8983_solr
参数说明:

collection 用于指定想要在哪个 collection 下创建一个 Rephca
shard 用于指定想要在哪个shard下创建一个Replica,如果此参数未指定,那么_route_参数必须指定
_route_ 如果指定了 shard 参数,那么此参数会自动被忽略 。 此参数用于指定一个 Shard key 来确定此 Replica 属于哪个 Shard
node  用于指定在哪个 Solr 节点上创建该 Replica 。 节点名称指定示例: 192.168.1.35:8983_solr ,可以查看zk中的live_nodes节点下查看。 可选参数
instanceDir  用于指定创建 Replica 时是否同时创建该 Replica 的 Core 目 录,可选参数
dataDir 用于指定创建 Replica 时是否同时创建该 Replica 的数据目录,可选参数
property.name=value  用于指定创建 Replica 时设置该 Replica 的 core.properti邸,可选参数

 

当你为某个 Collection 下的指定 Shard 创建一个 Replica 时,可能会提示如下异常:
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:Cannot create 1 new replicas for collection goods given the current number of live nodes and a maxShardsPerNode of 6

从提示信息中,我们可以得知,当前 maxShardsPerNode=6 即每个 Solr 节点上最多有6个Shard , maxShardsPerNode参数表示每个 Solr 节点上最多可以分布的 Shard 个数,默认值是1,你可以在创建Collection时设置此参数。 也可以通过修改Collection接口更新此参数值。 
在一个正常的 SolrCloud 集群中,不允许在同一个活跃的 Solr 节点上出现属于同一个 shard 的多个Replica。 
将一个 Replica 添加到一个 Solr 节点上应满足以下条件: numShards*replicationFactor <liveSolrNode*maxShardsPerNode 
numShards 表示 Collection 的 Shard 个数, 
replicationFactor表示每个 Shard 下的 Replica 个数, 
liveSolrNode 表示集群中的活跃节点 。

2.1 删除Replica

此接口用于删除指定的 Replica。 如果该Replica的Core正在运行,那么Core会被卸载,然后Replica会从集群状态中被移除,默认还会删除该 Replica 的 Core 的 instanceDir和 dataDir。 
如果该 Replica 的 Core 或者该 Replica 的所在 Solr 节点挂掉了 , 那么该 Replica会从集群状态中删除。如果该 Core 后续又自动恢复了,那么它会自动被卸载 

接口地址:

http://localhost:8983/solr/admin/collections?action=DELETEREPLICA&collection=test2&shard=shard2&replica=core_node3

参数说明:

collection 待删除的 Replica 所属 Collection 的名称
shard 待删除的 Replica 所属 Shard 的名称
replica 待删除的 Replica 的名称
deletelnstanceDir 删除 Replica 同时是否删除 Replica 的 core 目 录 ,可选参数
deleteDataDir 删除 Replica 同时是否删除 Replica 的数据目录,可选参数
deletelndex 删除 Replica 同时是否删除 Replica 的索引数据,可选参数
onlylfDown 如果此参数设置为 true ,那么如果 Replica 的状态为 ACTIVE ,那么将什么都不做。 可选参数
async 用于指定一个异步请求 ID , 当你指定了此参数即表示启用异步执行,可选参数

转载于:https://my.oschina.net/zupengliu/blog/1837129

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值