核心发现

核心发现意味着创建一个核心就像在磁盘上放置一个简单的 core.properties 文件一样简单。

core.properties 文件

在 Solr 中,术语核心用于指代单个索引以及相关的事务日志和配置文件(包括 solrconfig.xml 和模式文件等)。您的 Solr 安装可以根据需要具有多个核心,这允许您在同一服务器中索引具有不同结构的数据,并控制如何将数据呈现给不同的受众。在 SolrCloud 模式下,您将更熟悉术语集合。在幕后,一个集合由一个或多个核心组成。

可以使用 bin/solr 脚本创建核心,也可以使用 API 作为 SolrCloud 集合创建的一部分创建核心。核心特定的属性(例如用于索引或配置文件的目录、核心名称和其他选项)在 core.properties 文件中定义。Solr 将在您的 Solr 安装的任何目录中(或在定义了 solr_home 的目录下的目录中)找到任何 core.properties 文件,并且定义的属性将用于文件中命名的核心。

core.properties 文件是一个简单的 Java 属性文件,其中每行只是一个键=值对,例如 name=core1。请注意,不需要引号。

一个最小的 core.properties 文件如下例所示。但是,它也可以为空,请参阅下面关于 core.properties 放置的信息。

name=my_core_name

core.properties 的放置

Solr 核心通过在 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.xml,但请注意,如果您正在使用“托管模式”(默认行为),则任何与有效的 managedSchemaResourceName 不匹配的此属性的值都将被读取一次、备份并转换为托管模式使用。有关更多详细信息,请参见模式工厂配置

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 的未来参数,或用户标记节点以供自己使用的方式。

可以指定其他用户定义的属性以用作变量。有关如何定义本地属性的更多信息,请参见配置文件中的属性替换部分。