solr 經常使用命令

1.啓動和關閉

a.啓動和重啓

啓動和重啓命令有不少選項讓你運行在SolrCloud模式,使用示例配置,以hostname爲開頭或者非默認端口,指向本地ZooKeeper。node

bin/solr start [options] bin/solr start -help bin/solr restart [options] bin/solr restart -help

當使用重啓命令,必須傳入當初啓動時的全部參數。Solr重啓以前將被關閉。若是沒有節點正在運行,restart將跳過關閉,直接啓動Solr。服務器

可用參數

參數 描述 示例
-a "<string>"

使用JVM參數啓動Solr,例如-X。less

若是傳入以"-D"開頭的JVM參數,則能夠刪除-a選項socket

bin/solr start -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"
-cloud

若是以SolrCloud模式啓動,將啓動包含Solr的內置ZooKeeper實例url

可簡寫爲-cspa

bin/solr start -c
-d <dir> 定義服務器目錄,默認值是$SOLR_HOME/server。通常不定義這個選項。一般狀況是每一個實例使用相同服務器目錄而且使用惟一的Solr home目錄 bin/solr start -d newServerDir
-e <name>

使用示例配置啓動Solr。這些示例用來幫助你更快入門Solr,或者嘗試特性。命令行

可用選項有:clound、techproducts、dih、schemalessdebug

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

無提示,默認徹底接受rest

示例:當使用-cloud時,會有交互式引導你多個選項,若是你想都默認接收,只須要使用這個選項code

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
相關文章
相關標籤/搜索