13.1SolrCloud集群使用手册之Collections API
转载请出自出处:http://www.cnblogs.com/hd3013779515/
1.创建collection
name:指明collection名字 router.name:指定路由策略,默认为compositeId路由 numShards:collection的逻辑分片数量 shards:指定具体的shard列表 replicationFactor:一个分片的replicas数量 maxShardsPerNode :一个solr节点上可以创建的逻辑分片数量,默认值为1 createNodeSet:可以指定在那些solr节点上创建collection
路由规则
SolrCloud中对于文档分布在哪个shard上,提供了两种路由算法:compositeId和implicit
在创建Collection时,需要通过router.name指定路由策略,默认为compositeId路由。
compositeId
该路由为一致性哈希路由,shards的哈希范围从80000000~7fffffff。初始创建collection是必须指定numShards个数,compositeId路由算法根据numShards的个数,计算出每个shard的哈希范围,因此路由策略不可以扩展shard。
implicit
该路由方式指定索引具体落在路由到哪个Shard,这与compositeId路由方式索引可均匀分布在每个shard上不同。同时只有在implicit路由策略下才可创建shard。
利用solrJ新建索引时,需要在代码中指定索引具体落在哪个shard上,添加代码:
doc.addField("_route_", "shard_X");
同时在schema.xml添加字段
<field name="_route_" type="string"/>
当我们想指定配置文件,索引目录时,可以加入如下参数
|
property.name=value |
string |
No |
Set core property name to value. See core.properties file contents. |
可选参数如下:
|
key |
Description |
|
name |
The name of the SolrCore. You'll use this name to reference the SolrCore when running commands with the CoreAdminHandler. |
|
config |
The configuration file name for a given core. The default is solrconfig.xml. |
|
schema |
The schema file name for a given core. The default is schema.xml |
|
dataDir |
Core's data directory as a path relative to the instanceDir, data by default. |
|
configSet |
If set, the name of the configset to use to configure the core (see Config Sets). |
|
properties |
The name of the properties file for this core. The value can be an absolute pathname or a path relative to the value of instanceDir. |
|
transient |
If true, the core can be unloaded if Solr reaches the transientCacheSize. The default if not specified is false. Cores are unloaded in order of least recently used first. |
|
loadOnStartup |
If true, the default if it is not specified, the core will loaded when Solr starts. |
|
coreNodeName |
Added in Solr 4.2, this attributes allows naming a core. The name can then be used later if you need to replace a machine with a new one. By assigning the new machine the same coreNodeName as the old core, it will take over for the old SolrCore. |
|
ulogDir |
The absolute or relative directory for the update log for this core (SolrCloud) |
|
shard |
The shard to assign this core to (SolrCloud) |
|
collection |
The name of the collection this core is part of (SolrCloud) |
|
roles |
Future param for SolrCloud or a way for users to mark nodes for their own use. |
使用Collections API:CREATE来创建collection时需要符合下面的条件。
shards*replicationFactor <= maxShardsPerNode*Node数
http://192.168.137.171:8080/solr-cloud/admin/collections?action=CREATE&name=myc&numShards=2&replicationFactor=3&maxShardsPerNode=2

http://192.168.137.171:8080/solr-cloud/admin/collections?action=CREATE&name=myc2&numShards=2&replicationFactor=2&maxShardsPerNode=2&createNodeSet=192.168.137.171:8080_solr-cloud,192.168.137.172:8080_solr-cloud

http://192.168.137.171:8080/solr-cloud/admin/collections?action=CREATE&name=myc3&router.name=implicit&shards=shard1,shard2&replicationFactor=3&maxShardsPerNode=3

指定配置文件
http://192.168.137.171:8080/solr-cloud/admin/collections?action=CREATE&name=myc2&numShards=2&replicationFactor=3&maxShardsPerNode=2&collection.configName=myconf2&property.config=solrconfig2.xml&property.schema=schema2.xml


2.删除collection
http://192.168.137.171:8080/solr-cloud/admin/collections?action=DELETE&name=myc2

3.RELOAD collection
如果schema中的属性有变动,只需要将正确的schema上传到服务器上之后重启solr即可
http://192.168.137.171:8080/solr-cloud/admin/collections?action=RELOAD&name=myc
4. SPLITSHARD(纵向扩容)
使用Collections API:SPLITSHARD来创建SHARD时不需要符合下面的条件。
shards*replicationFactor <= maxShardsPerNode*Node数
整体逻辑:无缝连接和无downtime
旧shard此时继续提供服务并把旧索引转到新的shard上
旧shard同时继续索引新文档
旧shard同时把新文档转发给新shard,新shard索引新文档
旧索引全部迁移到新shard之后,旧shard关闭,新文档直接转发到新的shard上了
手动利用DELETESHARD API删除旧shard
implicit路由:只要创建Shard即可: 新建索引时,将索引建到新建Shard上,查询操作时,指定collection名称,得到的仍是整个集群返回的结果。
compositeId路由:通过分裂(SPLITSHARD)操作实现。
http://192.168.137.171:8080/solr-cloud/admin/collections?action=SPLITSHARD&collection=myc&shard=shard1

5.CREATESHARD
路由规则为implicit 时才可以使用。
使用Collections API:CREATESHARD来创建shard时需要符合下面的条件。
shards*replicationFactor <= maxShardsPerNode*Node数
http://192.168.137.171:8080/solr-cloud/admin/collections?action=CREATESHARD&collection=myc3&shard=shard3

6. DELETESHARD
删除inactive shard
http://192.168.137.171:8080/solr-cloud/admin/collections?action=DELETESHARD&collection=myc2&shard=shard1

7.CREATEALIAS
实现跨collection查询,新建和修改都是使用CREATEALIAS。
http://192.168.137.171:8080/solr-cloud/admin/collections?action=CREATEALIAS&name=newc&collections=myc,myc2

8.DELETEALIAS
http://192.168.137.171:8080/solr-cloud/admin/collections?action=DELETEALIAS&name=newc

9.DELETEREPLICA
http://192.168.137.171:8080/solr-cloud/admin/collections?action=DELETEREPLICA&collection=myc2&shard=shard2&replica=192.168.137.171:8080_solr-cloud_myc2_shard2_replica2
10.ADDREPLICA
http://192.168.137.171:8080/solr-cloud/admin/collections?action=ADDREPLICA&collection=myc2&shard=shard2&node=192.168.137.171:8080_solr-cloud

使用Collections API:ADDREPLICA来创建replica时不需要符合下面的条件。
shards*replicationFactor <= maxShardsPerNode*Node数
13.1SolrCloud集群使用手册之Collections API的更多相关文章
- 13.2SolrCloud集群使用手册之CoreAdmin API
转载请出自出处:http://www.cnblogs.com/hd3013779515/ CoreAdminHandler是用来管理Solr cores的,用来管理一个Solr instance中所有 ...
- 13.4SolrCloud集群使用手册之CRUD
转载请出自出处:http://www.cnblogs.com/hd3013779515/ Student.java package cn.ljh.ssm.test; import org.apache ...
- 13.3SolrCloud集群使用手册之Zookeeper指令
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.upconfig java -classpath .:/home/solr/cloud/lib/* org ...
- Ubuntu_10.04下Hadoop-0.20.2集群配置手册
Ubuntu_10.04下Hadoop-0.20.2集群配置手册 一.软硬件环境的准备 下面的文章来自hadoopor.com,我先交待一下我自己的环境: 两台机器,每台机器上面两个虚机(vmware ...
- Nginx+Tomcat+MemCached 集群配置手册
系统实施文档 Nginx+Tomcat+MemCached 集群配置手册 目 录 第1章 概述 1.1 目标 互联网的快速发展带来了互联网系统的高负载和高可用性, 这要求我们在设计系统架 ...
- 实现CI/CDk8s高可用集群搭建总结以及部署API到k8s
实现CI/CD(Centos7.2)系列二:k8s高可用集群搭建总结以及部署API到k8s 前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署 ...
- OEMCC 13.2 集群版本安装部署
之前测试部署过OEMCC 13.2单机,具体可参考之前随笔: OEMCC 13.2 安装部署 当时环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP ...
- Greenplum(4.3.73)集群安装手册
1. 概述 本文档仅限于指导Greenplum 4.3.7.3(对应安装包greenplum-db-4.3.7.3-build-2-RHEL5-x86_64.bin)版本在CentOS6.5 系统进行 ...
- kubeadm安装kubernetes 1.13.1集群完整部署记录
k8s是什么 Kubernetes简称为k8s,它是 Google 开源的容器集群管理系统.在 Docker 技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提 ...
随机推荐
- 记录数据库操作记录的DDL触发器
我们在项目中经常会对数据做一些操作,比如增加一个字段,修改一个存储过程,删除表等等操作,很有必要记录这些操作,以便以后出了问题,方便找到元凶.接下来介绍一个DDL触发器在实际环境中的使用,这个DDL触 ...
- Redis-发布与订阅
发布与订阅(pub/sub)的特点是订阅者负责订阅频道发送者负责向频道发送二进制字符串消息.每当有消息发送至给定频道时,频道的所有订阅者都会收到消息 (发布和订阅命令) SUBSCRIBE : SUB ...
- 深入理解 Java Object
Java中的Object对象为所有对象的直接或间接父对象,里面定义的几个方法容易被忽略却非常重要.以下来自Effective Java 对Object中几个关键方法的应用说明. public clas ...
- Android-Messenger跨进程通信
http://blog.csdn.net/lmj623565791/article/details/47017485 一.概述 我们可以在客户端发送一个Message给服务端,在服务端的handler ...
- Android Interpolator(插值器)
1.概述 插值器定义如何计算动画中的特定值作为时间的函数.例如,指定动画在整个动画中线性发生,这意味着动画在整个时间内均匀移动,或者指定动画以使用非线性时间,例如,在开始或结束时使用加速或减速动画. ...
- 理解Java序列化
前言 Java对象是在JVM中产生的,若要将其进行传输或保存到硬盘,就要将对象转换为可传输的文件流.而目前Java对象的转换方式有: 利用Java的序列化功能序列成字节(字节流),一般是需要加密传输时 ...
- document.head.appendChild(element) 在 IE8 及以下报错
问题: 在开发中会遇到动态添加 script 标签的情况. 代码如下: var oScript = document.createElement('script'); oScript.src = 'd ...
- 小程序通过用户授权获取手机号之getPhoneNumber
小程序有一个获取用户很便捷的api,就是通过getPhoneNumber获取用户的已经绑定微信的手机号码.有一点要大家注意,现在微信和注重用户体验,有些方法都是需要用户主动去触发才能调用的,比如get ...
- 【代码笔记】iOS-plist获得城市列表
一,工程图. 二,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the ...
- 【代码笔记】iOS-SDWebImage的使用
一,工程图. 二,代码. RootViewController.m #import "RootViewController.h" //加入头文件 #import "UII ...
