核心探索

核心探索表示建立核心就像在磁碟上放置一個 core.properties 檔案一樣簡單。

core.properties 檔案

在 Solr 中,術語核心 用於指單一索引以及相關聯的交易記錄和設定檔(包括 solrconfig.xml 和 schema 檔案等)。您的 Solr 安裝可以根據需要有多個核心,這讓您可以在同一伺服器中索引具有不同結構的資料,並保持控制資料如何呈現給不同的受眾。在 SolrCloud 模式中,您會更熟悉集合 這個術語。在幕後,集合由一個或多個核心組成。

可以使用 bin/solr 腳本或作為使用 API 建立 SolrCloud 集合的一部分來建立核心。核心特定的屬性(例如用於索引或設定檔的目錄、核心名稱和其他選項)定義在 core.properties 檔案中。Solr 會找到您 Solr 安裝的任何目錄中的任何 core.properties 檔案(或在定義 solr_home 的目錄下的目錄中),並且定義的屬性將用於檔案中命名的核心。

core.properties 檔案是一個簡單的 Java Properties 檔案,其中每一行只是一個鍵=值對,例如,name=core1。請注意,不需要引號。

一個最小的 core.properties 檔案如下面的範例所示。但是,它也可以是空的,請參閱下面有關 core.properties 放置位置的資訊。

name=my_core_name

core.properties 的放置位置

Solr 核心 (cores) 的配置方式是在 solr.home 下的子目錄中放置一個名為 core.properties 的檔案。樹狀結構的深度沒有預先限制,可以定義的核心數量也沒有限制。核心可以位於樹狀結構中的任何位置,但現有核心下可以定義核心。也就是說,以下是不允許的:

./cores/core1/core.properties
./cores/core1/coremore/core5/core.properties

在這個例子中,列舉將在 "core1" 停止。

以下是合法的:

./cores/somecores/core1/core.properties
./cores/somecores/core2/core.properties
./cores/othercores/core3/core.properties
./cores/extracores/deepertree/core4/core.properties

可以將 Solr 分割為多個核心,每個核心都有自己的配置和索引。核心可以專用於單一應用程式或非常不同的應用程式,但所有核心都透過一個通用的管理介面進行管理。您可以動態建立新的 Solr 核心、關閉核心,甚至替換一個正在運行的核心,而無需停止或重新啟動 Solr。

您的 core.properties 檔案如果需要可以為空。假設 core.properties 位於 ./cores/core1 (相對於 solr_home),但它是空的。在這種情況下,核心名稱將被假定為 "core1"。instanceDir 將是包含 core.properties 的資料夾 (即,./cores/core1)。dataDir 將是 ../cores/core1/data 等。

您可以在不配置任何核心的情況下運行 Solr。

定義 core.properties 檔案

最小的 core.properties 檔案是一個空檔案,在這種情況下,所有屬性都會適當地使用預設值。

Java 屬性檔案允許使用井號 (#) 或驚嘆號 (!) 字元來指定行尾註解。

以下屬性可用:

name

可選

預設值:無

SolrCore 的名稱。當使用 CoreAdminHandler 執行命令時,您將使用此名稱來引用 SolrCore。

config

可選

預設值:solrconfig.xml

給定核心的配置檔案名稱。

schema

可選

預設值:參見說明

給定核心的 schema 檔案名稱。預設值是 schema.xml,但請注意,如果您使用的是「受管理 schema」(預設行為),則任何不符合有效的 managedSchemaResourceName 的屬性值,都只會讀取一次、備份並轉換為受管理 schema 使用。請參閱 Schema Factory Configuration 以取得更多詳細資訊。

dataDir

可選

預設值:data

核心的資料目錄 (索引的儲存位置),可以是絕對路徑名稱,或是相對於 instanceDir 值的路徑。

configSet

可選

預設值:無

如果需要,可以使用定義的 configset 名稱來配置核心 (請參閱 Configsets 章節以取得更多詳細資訊)。

properties

可選

預設值:無

此核心的屬性檔案名稱。該值可以是絕對路徑名稱,或是相對於 instanceDir 值的路徑。

transient

可選

預設值:false

當為 true 時,如果 Solr 達到 transientCacheSize,核心可以被卸載。核心會按照最近最少使用的順序卸載。不建議在 SolrCloud 模式中將此設定為 true

loadOnStartup

可選

預設值:true

當為 true (預設值) 時,核心將在 Solr 啟動時載入。不建議在 SolrCloud 模式中將此設定為 false

coreNodeName

可選

預設值:參見說明

僅在 SolrCloud 中使用,這是託管此副本的節點的唯一識別碼。預設情況下,會自動產生 coreNodeName,但明確設定此屬性可讓您手動分配一個新核心來取代現有的副本。例如,當透過在新機器上使用新的主機名稱或連接埠從備份還原,來取代硬體故障的機器時,這會很有用。

ulogDir

可選

預設值:無

此核心的更新日誌的絕對或相對目錄 (僅限 SolrCloud)。

shard

可選

預設值:無

將此核心分配到的分片 (僅限 SolrCloud)。

collection

可選

預設值:無

此核心所屬的集合名稱 (僅限 SolrCloud)。

roles

可選

預設值:無

SolrCloud 的未來參數,或是使用者標記節點以供自己使用的方法。

可以指定其他使用者定義的屬性,以作為變數使用。有關如何定義本機屬性的更多資訊,請參閱 Configuration Files 中的屬性替換 一節。