http://192.168.1.35:9999/solr/admin/collections?action=CREATE&name=searchTest&numShards=4&replicationFactor=1&collection.configName=searchnode
參數說明:apache
name:collection的名稱
numShards:指定分片數量(slices)
replicationFactor:指定每一個Shard副本數量
maxShardsPerNode:每一個Solr服務器節點上最大Shard數量,默認值爲1json注意三個數值:numShards、replicationFactor、liveSolrNode,一個正常的solrCloud集羣不允許同一個liveSolrNode上部署同一個shard的多個replic,所以當maxShardsPerNode=1時,numShards*replicationFactor>liveSolrNode時,報錯api
所以正確時因知足如下條件:numShards*replicationFactor<liveSolrNode*maxShardsPerNode服務器
collection.configName:指定該collection使用那份config,這份config必須存在於zk中。異步
createNodeSet:暫時不進行任何的 Shard 和 Replica 建立時,你須要添加額外的createNodeSet=EMPTY 參數
autoAddReplicas:賦值爲true 即開啓自動建立Replicaasync
/admin/collections?action=MODIFYCOLLECTION&collectio=<collection-name>&<attributename>=<attribute-value>spa
參數說明:索引
action=MODIFYCOLLECTION 參數表示執行修改 Collection 操做,
collection 參數用來指定你須要對哪一個 Collection 進行修改 。
<attribute-name>=<attribute-value>用於覆蓋Collection建立時的一些參數,支持覆蓋的參數有 : maxShardsPerNode 、 replicationFactor 、 autoAddReplicas 、 collection.configName 、 rule 、 snitch 。接口
http://localhost:8983/solr/admin/collections?action=DELETE&name=newCollection
參數說明:name :表示想要刪除的collection名稱
async:經過制定一個異步請求ID,來開啓異步操做
http://localhost:8983/solr/admin/collections?action=CREATEALIAS&name=testalias&collections=anothe
rCollection,testCollection
參數說明:name:表示別名
collections:參數表示collection名稱,能夠爲多個Collection指定一個別名,多個Collection之間名稱採用逗號分隔。
async:CREATEALIAS支持異步請求。
/admin/collections?action=DELETEALIAS&name=name
說明:刪除一個或者多個Collection對應的別名的API接口name:表示別名
備份接口地址:
/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 名稱
分割一個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 分割的執行結果,可選參數
建立一個新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 ,可選參數
指定的 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 表示集羣中的活躍節點 。
此接口用於刪除指定的 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 , 當你指定了此參數即表示啓用異步執行,可選參數