1.啟動和關閉
a.啟動和重啟
啟動和重啟命令有很多選項讓你運行在SolrCloud模式,使用示例配置,以hostname為開頭或者非默認端口,指向本地ZooKeeper。
bin/solr start [options] bin/solr start -help bin/solr restart [options] bin/solr restart -help
當使用重啟命令,必須傳入當初啟動時的所有參數。Solr重啟之前將被關閉。如果沒有節點正在運行,restart將跳過關閉,直接啟動Solr。
可用參數
參數 | 描述 | 示例 |
-a "<string>" | 使用JVM參數啟動Solr,例如-X。 如果傳入以"-D"開頭的JVM參數,則可以刪除-a選項 |
bin/solr start -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044" |
-cloud | 如果以SolrCloud模式啟動,將啟動包含Solr的內置ZooKeeper實例 可簡寫為-c |
bin/solr start -c |
-d <dir> | 定義服務器目錄,默認值是$SOLR_HOME/server。一般不定義這個選項。通常情況是每個實例使用相同服務器目錄並且使用唯一的Solr home目錄 | bin/solr start -d newServerDir |
-e <name> | 使用示例配置啟動Solr。這些示例用來幫助你更快入門Solr,或者嘗試特性。 可用選項有:clound、techproducts、dih、schemaless |
bin/solr start -e schemaless |
-f | 在前台啟動Solr;使用-e選項時不能使用這個選項 | bin/solr start -f |
-h <hostname> | 使用自定義hostname啟動Solr,默認值'localhost' | bin/solr start -h search.mysolr.com |
-m <memory> | 使用自定義值作為JVM的最小和最大堆值 | bin/solr start -m 1g |
-noprompt | 無提示,默認完全接受 示例:當使用-cloud時,會有交互式引導你多個選項,如果你想都默認接收,只需要使用這個選項 |
bin/solr start -e cloud -noprompt |
-p <port> | 指定端口 | bin/solr start -p 8655 |
-s <dir> | 設置solr.solr.home系統屬性。Solr將在該目錄下創建core目錄。這將允許你在相同host上跑多個實例,使用相同服務器目錄,使用-d選項 一旦設置,指定目錄需要包含solr.xml文件,除非solr.xml在ZooKeeper中存在,默認值是server/solr 當運行示例(-e)時,該參數將被忽略,因為solr.solr.home取決於哪個示例在跑 |
bin/solr start -s newHome |
-V | 打印冗余信息 | bin/solr start -V |
-z <zkHost> | 使用自定義ZooKeeper connection string啟動Solr。該選項只能在-c選項,即SolrCloud模式下使用。如果該選項未提供,Solr將啟動內置ZooKeeper實例 | bin/solr start -c -z server1:2181,server2:2181 |
為了強調默認設置是如何起作用的,花點時間了解下面的命令:
bin/solr start bin/solr start -h localhost -p 8983 -d server
沒有必要定義所有選項,因為有些默認就可以了。
b.設置Java系統屬性
使用-D給JVM傳入屬性
示例:設置自動soft-commit頻率為3秒
bin/solr start -Dsolr.autoSoftCommit.maxTime=3000
c.SolrCloud模式
bin/solr start -c/cloud
如果指定ZooKeeper連接字符串,例如"-z 192.168.1.4:2181",Solr將連接到ZooKeeper並加入集群。如果以cloud模式啟動,但沒有指定-z選項,則Solr啟動內置ZooKeeper服務器,堅挺在Solr端口+1000,例如Solr在端口8983,則內置ZooKeeper監聽在端口9983
d.使用示例配置運行
bin/solr start -e <name>
- cloud:在一個機器上啟動1-4節點的SolrCloud集群。
- techproducts:以standalone模式啟動。由於沒有SolrCloud,也沒有啟動schemaless模式,因此fields必須顯式地定義在schema.xml中。配置文件的目錄在$SOLR_HOME/server/solr/configsets/sample_techproducts_configs
- dih:以standalone模式啟動。使用DataImportHandler(DIH)和一些dataconfig.xml文件
- schemaless:以standalone模式啟動。使用托管schema(將在后文講解),提供最小化配置。Solr將運行在Schemaless模式,Solr將在運行時創建fields並猜測field類型。配置文件在$SOLR_HOME/server/solr/configsets/data_driver_schema.configs
注意:運行在前台(-f)選項在使用-e選項失效,因為腳本需要執行額外任務。
e.停止
stop命令向正在運行的Solr節點發送STOP請求,該命令等待5s讓Solr順滑停止,之后會強制殺進程(kill -9)
bin/solr stop [options] bin/solr stop -help
f.可用參數
參數 | 描述 | 示例 |
-p <port> | 在指定端口關閉Solr。如果正在運行多個實例或者SolrCloud模式,你需要分別指定端口關閉或者使用-all選項 | bin/solr stop -p 8983 |
-all | 關閉所有運行的Solr | bin/solr stop -all |
-k <key> | Stop key用來防止誤關閉,默認值是"solrrocks" | bin/solr stop -k solrrocks |
2.查看信息
a.版本
bin/solr version
b.狀態
status命令行展示基本的JSON格式的信息。status命令行使用SOLR-PID-DIR環境變量來定位Solr進程號文件來找到運行的Solr實例,SOLR-PID-DIR默認值是bin目錄
bin/solr status
輸出
Found 1 Solr nodes:
Solr process 975 running on port 8983
{
"solr_home":"/Users/hs/package/solr/server/solr",
"version":"5.4.1 1725212 - jpountz - 2016-01-18 11:51:45",
"startTime":"2016-02-14T02:06:05.35Z",
"uptime":"0 days, 0 hours, 0 minutes, 13 seconds",
"memory":"36 MB (%7.3) of 490.7 MB"}
c.健康檢測
前提是SolrCloud模式啟動。健康檢測報告提供關於對於所有shards的每個replica的狀態,包括提交文檔的個數和當前狀態
bin/solr healthcheck [options] bin/solr healthcheck -help
d.可用參數
參數 | 描述 | 示例 |
-c <collection> | 運行健康監測的集群對象名稱 | bin/solr healthcheck -c gettingstarted |
-z <zkhost> | ZooKeeper connection string,默認值是localhost:8983。如果不是8983,需要指定端口,默認是Solr端口+1000 | bin/solr healthcheck -z localhost:2181 |
下面是一個健康檢測示例
./solr healthcheck -c gettingstarted -z localhost:9983
輸出為
{
"collection":"gettingstarted",
"status":"healthy",
"numDocs":0,
"numShards":2,
"shards":[
{
"shard":"shard1",
"status":"healthy",
"replicas":[
{
"name":"core_node2",
"url":"http://10.8.204.89:8983/solr/gettingstarted_shard1_replica1/",
"numDocs":0,
"status":"active",
"uptime":"0 days, 0 hours, 4 minutes, 27 seconds",
"memory":"85.6 MB (%17.5) of 490.7 MB",
"leader":true},
{
"name":"core_node3",
"url":"http://10.8.204.89:7574/solr/gettingstarted_shard1_replica2/",
"numDocs":0,
"status":"active",
"uptime":"0 days, 0 hours, 4 minutes, 21 seconds",
"memory":"41.4 MB (%8.4) of 490.7 MB"}]},
{
"shard":"shard2",
"status":"healthy",
"replicas":[
{
"name":"core_node1",
"url":"http://10.8.204.89:8983/solr/gettingstarted_shard2_replica1/",
"numDocs":0,
"status":"active",
"uptime":"0 days, 0 hours, 4 minutes, 27 seconds",
"memory":"85.9 MB (%17.5) of 490.7 MB",
"leader":true},
{
"name":"core_node4",
"url":"http://10.8.204.89:7574/solr/gettingstarted_shard2_replica2/",
"numDocs":0,
"status":"active",
"uptime":"0 days, 0 hours, 4 minutes, 21 seconds",
"memory":"41.4 MB (%8.4) of 490.7 MB"}]}]}
3.Collections和Cores
a.創建
注意:執行create命令的用戶要和啟動Solr的用戶一致
create命令行會檢測到Solr的運行狀態(standalone或SolrCloud),根據狀態創建core或collection
bin/solr create options bin/solr create -help
可用參數
參數 | 描述 | 示例 |
-c <name> | 創建core或collection的名稱 | bin/solr create -c mycollection |
-d <confdir> | 配置目錄,默認值是data_driven_schema_configs | bin/solr create -d basic_configs |
-n <configName> | 配置文件名。默認和core或collection同名 | bin/solr create -n basic |
-p <port> | 指定Solr端口。當運行多個standalone實例時需要指定 | bin/solr create -p 8983 |
-s <shards> -shards |
分割collection為shards的數量,默認1。前提是SolrCloud模式 | bin/solr create -s 2 |
-rf <replicas> -replicationFactor |
集群中每個document的拷貝數量,默認值1(沒有replication) | bin/solr create -rf 2 |
4.配置目錄和SolrCloud
在創建SolrCloud集群前,使用的配置目錄必須上傳到ZooKeeper。需要你做主要決定的是在ZooKeeper中的配置目錄是否應該分享到多個集群。下面通過示例來了解配置目錄是如何在SolrCloud中工作的。
首先,如果沒有提供-d或-n選項,默認配置($SOLR_HOME/server/solr/configsets/data_driven_schema_cinfigs/conf)被上傳到ZooKeeper,使用和集群相同的名稱。例如,下面的命令將導致data-driven_schema_configs配置被上傳到ZooKeeper
bin/solr create -c contacts
如果創建另一個集群
bin/solr create -c contacts2
另一個data_driven_schema_configs的拷貝將被上傳到ZooKeeper,在/configs/contacts2下。對contacts集群做的變化不會影響contacts2。簡而言之,默認為每個collection創建獨一無二的配置目錄拷貝。
使用-n選項可以覆蓋ZooKeeper的配置目錄。示例
bin/solr create -c logs -d basic_configs -n basic
將上傳server/solr/configsets/basic_configs/conf目錄到ZooKeeper作為/configs/basic
注意,我們使用-d選項指定不同的配置目錄。Solr提供了多個內置配置,在server/solr/configsets下。然而,你也可以提供你自己的配置目錄路徑。示例:
bin/solr create -c mycoll -d /tmp/myconfigs
將上傳/tmp/myconfigs到ZooKeeper目錄/configs/mycoll下。再次重申,配置目錄的名稱和集群一致,除非使用-n指定
其他集群可以共享配置,使用-n選項。示例:創建一個共享之前創建的basic配置的新集群
bin/solr create -c logs2 -n basic
a.Data-driven schema和共享配置
data_driven_schema_configs將轉變為索引數據。因此,建議不要共享配置,除非確定所有集群應該繼承一個集群的索引變化。
b.Delete
delete命令行檢測到Solr的運行模式,delete core或collection
bin/solr delete [options] bin/solr delete -help
如果在SolrCloud模式,delete命令行檢查配置目錄是否有其他集群使用,如果沒有,也將從ZooKeeper中被刪除。
可用參數
參數 | 描述 | 示例 |
-c <name> | core/collection名稱 | bin/solr delete -c mycoll |
-deleteConfig <trueIfalse> | 從ZooKeeper刪除配置目錄,默認值為true 如果配置目錄被其他集群使用,指定true也不會被刪除 |
bin/solr delete -deleteConfig false |
-p <port> | 多個standalone實例時有用 | bin/solr delete -p 8983 |