生活如麻 发表于 2017-12-20 11:32:06

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>  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>  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>  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数
页: [1]
查看完整版本: 13.1SolrCloud集群使用手册之Collections API