Configsets

Configsets 是 Solr 安装中使用的一组配置文件:solrconfig.xml、架构和 资源,如语言文件、synonyms.txt 等。

此类配置(configsets)可以命名,然后由集合或核心引用,允许你共享它们以避免重复。

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

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

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

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

要创建命名的 configset,请在 configset 基本目录下添加一个新目录。configset 将由该目录的名称标识。然后添加一个 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 创建新核心,请将 configSet 作为核心属性之一传递。例如,如果你通过 CoreAdmin API 执行此操作

V1 API

curl http://localhost:8983/admin/cores?action=CREATE&name=mycore&instanceDir=path/to/instance&configSet=configset2

V2 API

curl -v -X POST -H 'Content-type: application/json' -d '{
  "create":[{
    "name": "mycore",
    "instanceDir": "path/to/instance",
    "configSet": "configSet2"}]}'
    http://localhost:8983/api/cores

SolrCloud 集群中的 Configsets

在 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 并不接受所有文件类型。默认情况下,排除的文件类型是

  • class

  • java

  • jar

  • tgz

  • zip

  • tar

  • gz

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

  • 系统属性:-DsolrConfigSetForbiddenFileTypes

  • 环境变量:SOLR_CONFIG_SET_FORBIDDEN_FILE_TYPES