核心发现意味着创建核心就像在磁盘上放置一个core.properties
文件一样简单。
core.properties文件
在Solr中,术语核心用于指单个索引以及相关的事务日志和配置文件(包括solrconfig.xml
和schema文件等)。
如果需要,你的Solr安装可以有多个核心,这允许你在同一服务器中索引具有不同结构的数据,并保持对如何向不同受众呈现数据的控制。
在SolrCloud模式下,你会更熟悉术语集合。
在幕后,一个集合由一个或多个核心组成。
可以使用bin/solr
脚本或作为SolrCloud集合创建的一部分使用API创建核心。
核心特定的属性(如用于索引或配置文件的目录、核心名称和其他选项)在core.properties
文件中定义。
Solr会找到你的Solr安装的任何目录中的任何core.properties
文件(或在定义solr_home
的目录下的目录中),并将使用定义的属性来配置文件中命名的核心。
core.properties
文件是一个简单的Java Properties文件,其中每行只是一个key=value对,例如name=core1
。
注意不需要引号。
最小的core.properties
文件如下例所示。
但是,它也可以为空,请参见下面关于core.properties
放置的信息。
1 | name=my_core_name |
core.properties的放置
通过在solr.home
下的子目录中放置名为core.properties
的文件来配置Solr核心。
树的深度没有先验限制,也没有可以定义的核心数量的限制。
核心可以在树中的任何位置,但核心不能在现有核心下定义。
也就是说,以下是不允许的:
1 | ./cores/core1/core.properties |
在这个例子中,枚举将在”core1”处停止。
以下是合法的:
1 | ./cores/somecores/core1/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(可选,默认:none):
SolrCore的名称。
当使用CoreAdminHandler
运行命令时,你将使用此名称引用SolrCore。
config(可选,默认:solrconfig.xml
):
给定核心的配置文件名。
schema(可选,默认:见描述):
给定核心的schema文件名。
默认为schema.xml
,但请注意,如果你使用的是”托管schema”(默认行为),那么此属性的任何值如果不匹配有效的managedSchemaResourceName
将被读取一次、备份,并转换为托管schema使用。
有关更多详细信息,请参见Schema工厂。
dataDir(可选,默认:data
):
核心的数据目录(存储索引的位置),作为绝对路径名,或相对于instanceDir
值的路径。
configSet(可选,默认:none):
如果需要,定义的configset的名称,用于配置核心(有关更多详细信息,请参见配置集部分)。
properties(可选,默认:none):
此核心的属性文件名。
该值可以是绝对路径名或相对于instanceDir
值的路径。
transient(可选,默认:false
):
当为true
时,如果Solr达到transientCacheSize
,核心可以被卸载。
核心按最近最少使用的顺序卸载。
在SolrCloud模式下不建议将此设置为true
。
loadOnStartup(可选,默认:true
):
当为true
(默认值)时,核心将在Solr启动时加载。
在SolrCloud模式下不建议将此设置为false
。
coreNodeName(可选,默认:见描述):
仅在SolrCloud中使用,这是托管此副本的节点的唯一标识符。
默认情况下会自动生成coreNodeName
,但显式设置此属性允许你手动分配新核心来替换现有副本。
例如,当通过在具有新主机名或端口的新机器上从备份恢复来替换硬件故障的机器时,这可能很有用。
ulogDir(可选,默认:none):
此核心更新日志的绝对或相对目录(仅限SolrCloud)。
shard(可选,默认:none):
要将此核心分配到的分片(仅限SolrCloud)。
collection(可选,默认:none):
此核心所属集合的名称(仅限SolrCloud)。
roles(可选,默认:none):
SolrCloud的未来参数或用户标记节点供自己使用的方式。
可以指定其他用户定义的属性以用作变量。
有关如何定义本地属性的更多信息,请参见属性替换部分。