配置集

配置集是一组在 Solr 安装中使用的配置文件:solrconfig.xml,模式和资源,如语言文件、synonyms.txt 以及其他文件。

这种配置(配置集)可以被命名,然后被集合或核心引用,允许您共享它们以避免重复。

Solr 附带两个位于 server/solr/configsets 中的示例配置集,可以用作您自己的配置集的基础。这些示例配置集名为 _defaultsample_techproducts_configs

用户管理的集群或单节点安装中的配置集

如果您在用户管理的集群或单节点安装中使用 Solr,则配置集在文件系统上进行管理。

每个 Solr 核心都可以在其下方的 <instance_dir>/conf/ 目录中拥有自己的配置集。在这里,它没有被命名或共享,也找不到 configset 这个词。在 Solr 的早期,这是唯一的配置方式。

要创建命名的配置集,请在配置集基本目录下面添加一个新目录。配置集将由该目录的名称标识。然后添加一个 conf/ 目录,其中包含您要共享的配置。结构应如下所示

/<configSetBaseDir>
    /configset1
        /conf
            /managed-schema.xml
            /solrconfig.xml
    /configset2
        /conf
            /managed-schema.xml
            /solrconfig.xml

默认的基本目录是 $SOLR_HOME/configsets。可以使用 solr.xml 中的 configSetBaseDir 参数配置此路径(有关详细信息,请参阅配置 solr.xml)。

要使用配置集创建新的核心,请将 configSet 作为核心属性之一传递。例如,如果您通过 CoreAdmin API 执行此操作

  • V1 API

  • V2 API

curl https://127.0.0.1:8983/admin/cores?action=CREATE&name=mycore&instanceDir=path/to/instance&configSet=configset2
curl -v -X POST -H 'Content-type: application/json' -d '{
  "create":[{
    "name": "mycore",
    "instanceDir": "path/to/instance",
    "configSet": "configSet2"}]}'
    https://127.0.0.1:8983/api/cores

SolrCloud 集群中的配置集

在 SolrCloud 中,至关重要的是要理解配置集存储在 ZooKeeper 中,而不是文件系统中。Solr 的 _default 配置集在初始化时上传到 ZooKeeper。此配置集和一些示例配置集保留在文件系统中,但 Solr 不会使用它们,除非它们用于新的集合。

在 SolrCloud 中创建集合时,可以指定命名的配置集。如果您不指定,则会复制 _default 并赋予一个唯一的名称,供新集合使用。

可以通过配置集 API 或更直接地通过bin/solr zk upconfig 将配置集上传到 ZooKeeper。配置集 API 也有一些其他操作,同样地,CLI 也有。

要将文件上传到已存储在 ZooKeeper 上的配置集中,可以使用 bin/solr zk cp

默认情况下,ZooKeeper 的文件大小限制为 1MB。如果您的文件大于此限制,则需要增加 ZooKeeper 文件大小限制,或者将它们存储在集群中每个节点的文件系统上

禁止的文件类型

Solr 在上传或下载 configSets 时并非接受所有文件类型。默认情况下,排除的文件类型包括:

  • class

  • java

  • jar

  • tgz

  • zip

  • tar

  • gz

但是,用户可以通过向以下任一设置提供逗号分隔的文件类型列表(不带前导点,例如 jar,class,csv),对其系统施加更严格或更宽松的限制。

  • 系统属性:-DsolrConfigSetForbiddenFileTypes

  • 环境变量:SOLR_CONFIG_SET_FORBIDDEN_FILE_TYPES