solr-control-script-reference之二

solr-control-script-reference.html#

 

collections-and-cores

 

create命令檢測solr正在運行的模式(獨立模式或solrcloud模式),然後根據模式創建核心或集合。

bin/solr create [options]

bin/solr create -help

創建核心或集合參數

-c <name>

要創建的核心或集合的名稱(必需)。

-d <confdir>

The configuration directory. This defaults to basic_configs.

Example: bin/solr create -d basic_configs

-n <configName>

The configuration name. This defaults to the same name as the core or collection.

Example: bin/solr create -n basic

-p <port>

要向其發送create命令的本地solr實例的端口;默認情況下,腳本嘗試通過查找正在運行的solr實例來檢測端口。

如果您在同一臺主機上運行多個獨立的solr實例,那麼此選項非常有用,因此需要您具體說明在哪個實例中創建核心。

Example: bin/solr create -p 8983

-s <shards> or -shards

Number of shards to split a collection into, default is 1; only applies when Solr is running in SolrCloud mode.

-s <shards> or -shards

Number of shards to split a collection into, default is 1; only applies when Solr is running in SolrCloud mode.

Example: bin/solr create -s 2

-rf <replicas> or -replicationFactor

Number of copies of each document in the collection. The default is 1 (no replication).

Example: bin/solr create -rf 2

Configuration Directories and SolrCloud

在solrcloud中創建集合之前,必須將集合使用的配置目錄上載到zookeeper。create命令支持集合和配置目錄如何工作的幾個用例。您需要做的主要決定是,是否應該跨多個集合共享ZooKeeper中的配置目錄。

讓我們通過幾個例子來說明配置目錄如何在solrcloud中工作。

首先,如果不提供-d或-n選項,則默認配置($solr_home/server/solr/configsets/_default/conf)將使用與集合相同的名稱上載到ZooKeeper。

例如,以下命令將導致將默認配置上載到zookeeper中/configs/contacts:

bin/solr create-c contacts。

如果使用bin/solr create-c contacts2創建另一個集合,則會將默認目錄的另一個副本上載到/configs/contacts2下的zookeeper。

對contacts集合的配置所做的任何更改都不會影響contacts2集合。簡單地說,默認行爲爲您創建的每個集合創建配置目錄的唯一副本。

您可以使用-n選項覆蓋ZooKeeper中爲配置目錄指定的名稱。例如,命令bin/solr create-c logs-d _default-n basic將把server/solr/configsets/_default/conf目錄上載到zookeeper as/configs/basic。

注意,我們使用-d選項來指定與默認配置不同的配置。solr在server/solr/configsets下提供了幾個內置配置。但是,您也可以使用-d選項提供到您自己的配置目錄的路徑。例如,命令bin/solr create-c mycoll-d /tmp/myconfigs將把/tmp/myconfigs上傳到/configs/mycoll下的zookeeper中。

要重申,除非使用-n選項重寫配置目錄,否則配置目錄將以集合命名。

其他集合可以通過使用-n選項指定共享配置的名稱來共享相同的配置。

其他集合可以通過使用-n選項指定共享配置的名稱來共享相同的配置。例如,以下命令將創建一個新集合,該集合共享先前創建的基本配置:bin/solr create-c logs2-n basic

Data-driven Schema and Shared Configuration

數據驅動模式和共享配置

默認模式可以隨着數據的索引而變化,因爲它具有無模式功能(即,對模式的數據驅動更改)。因此,我們建議您不要在集合之間共享數據驅動的配置,除非您確定所有集合都應繼承將數據索引到其中一個集合時所做的更改。如果集合名稱爲myCollection,則可以通過以下方式關閉集合的無模式功能(即對架構的數據驅動更改)

bin/solr config -c mycollection -p 8983 -action set-user-property -property update.autoCreateFields -value false

Delete Core or Collection

delete命令檢測solr正在運行的模式(standalone或solrcloud),然後根據需要刪除指定的核心(standalone)或集合(solrcloud)。

bin/solr delete [options]

bin/solr delete -help

如果在solrcloud模式下運行,則delete命令檢查正在刪除的集合使用的配置目錄是否正被其他集合使用。如果沒有,那麼配置目錄也會從ZooKeeper中刪除。

例如,如果使用bin/solr create-c contacts創建了一個集合,則delete命令bin/solr delete-c contacts將檢查/configs/contacts配置目錄是否正由任何其他集合使用。如果沒有,則從zookeeper中刪除/configs/contacts目錄。

Delete Core or Collection Parameters

-c <name>

Name of the core / collection to delete (required).

Example: bin/solr delete -c mycoll

-deleteConfig

配置目錄是否也應該從ZooKeeper中刪除。默認值爲true。

如果另一個集合正在使用配置目錄,則即使將-deleteconfig傳遞爲true,也不會刪除該目錄。

Example: bin/solr delete -deleteConfig false

-p <port>

要將刪除命令發送到的本地solr實例的端口。默認情況下,腳本嘗試通過查找運行的solr實例來檢測端口。

如果您在同一臺主機上運行多個獨立的solr實例,那麼此選項非常有用,因此需要您具體說明從哪個實例中刪除核心。

Example: bin/solr delete -p 8983

認證

bin/solr腳本允許啓用或禁用基本身份驗證,允許您從命令行配置身份驗證。當前,此腳本僅啓用基本身份驗證,並且僅在使用solrcloud模式時可用。

Enabling Basic Authentication

命令bin/solr auth enable將solr配置爲在使用bin/solr和任何API請求訪問用戶界面時使用基本身份驗證。

bin/solr 創建security.json文件並將其上載到zookeeper。security.json文件將類似於:auth enable命令進行了若干更改以啓用基本身份驗證:

{

  "authentication":{

   "blockUnknown": false,

   "class":"solr.BasicAuthPlugin",

   "credentials":{"user":"vgGVo69YJeUg/O6AcFiowWsdyOUdqfQvOLsrpIPMCzk= 7iTnaKOWe+Uj5ZfGoKKK2G6hrcF10h6xezMQK+LBvpI="}

  },

  "authorization":{

   "class":"solr.RuleBasedAuthorizationPlugin",

   "permissions":[

 {"name":"security-edit", "role":"admin"},

 {"name":"collection-admin-edit", "role":"admin"},

 {"name":"core-admin-edit", "role":"admin"}

   ],

   "user-role":{"user":"admin"}

  }

}

在bin/solr.in.sh或bin\solr.in.cmd中添加兩行以設置身份驗證類型和basicauth.conf的路徑:

# The following lines added by ./solr for enabling BasicAuth

SOLR_AUTH_TYPE="basic"

SOLR_AUTHENTICATION_OPTS="-Dsolr.httpclient.config=/path/to/solr-7.5.0/server/solr/basicAuth.conf"

創建文件server/solr/basicauth.conf以存儲與bin/solr命令一起使用的憑證信息。

該命令採用以下參數:

 

-credentials

The username and password in the format of username:password of the initial user.

如果不希望將用戶名和密碼作爲參數傳遞給腳本,則可以選擇-prompt選項。必須指定-credentials或-prompt。

-prompt

如果首選prompt,則將true作爲參數傳遞,以請求腳本提示用戶輸入用戶名和密碼。

必須指定-credentials或-prompt。

 

-blockUnknown

When true, blocks all unauthenticated users from accessing Solr. This defaults to false, which means unauthenticated users will still be able to access Solr.

-updateIncludeFileOnly

如果爲true,則只更新bin/solr.in.sh或bin\solr.in.cmd中的設置,而不創建security.json。

-z

定義ZooKeeper連接字符串。如果您想在所有solr節點都出現之前啓用身份驗證,這很有用。如果zk_主機在solr.in.sh或solr.in.cmd中定義,則不需要。

-d

定義solr服務器目錄,默認爲$solr_home/server。通常不需要覆蓋默認值,只有在自定義了$solr_主目錄路徑時才需要。

-s

定義solr.solr.home的位置,默認爲server/solr。如果同一主機上有多個solr實例,或者您自定義了$solr_主目錄路徑,則可能需要定義此路徑。

Disabling Basic Authentication

您可以使用bin/solr auth disable禁用基本身份驗證。

如果-updateCincludeFileOnly選項設置爲true,則僅更新bin/solr.in.sh或bin\solr.in.cmd中的設置,並且不會刪除security.json。

如果-updateIncludeFileOnly選項設置爲false,則會更新bin/solr.in.sh或bin\solr.in.cmd中的設置,並刪除security.json。但是,basicauth.conf文件不會用任何一個選項刪除。

Set or Unset Configuration Properties

bin/solr腳本啓用配置API的子集:(取消設置)設置公共屬性和(取消設置)設置用戶定義的屬性。

bin/solr config [options]

bin/solr config -help

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章