枚举字段

EnumFieldType 允许定义一个值是封闭集合的字段,并且排序顺序是预先确定的,但不是按字母顺序或数字顺序排列的。例如,严重性列表或风险定义。

EnumField 已弃用

EnumField 已弃用,取而代之的是 EnumFieldType;以下所有配置示例都使用 EnumFieldType。

在模式中定义 EnumFieldType

EnumFieldType 类型定义非常简单,如下例所示,为“priorityLevel”和“riskLevel”枚举定义字段类型

<fieldType name="priorityLevel" class="solr.EnumFieldType" docValues="true" enumsConfig="enumsConfig.xml" enumName="priority"/>
<fieldType name="riskLevel"     class="solr.EnumFieldType" docValues="true" enumsConfig="enumsConfig.xml" enumName="risk" />

除了所有字段类型通用的nameclass之外,此类型还采用两个附加参数

enumsConfig

必需

默认值:无

包含该字段类型要使用的字段值及其顺序的<enum/>列表的配置文件的名称。如果未定义文件的路径,则该文件应位于集合的conf目录中。

enumName

必需

默认值:无

用于此类型的enumsConfig文件中的特定枚举的名称。

请注意,docValues="true"必须在字段类型或字段定义中指定。

定义 EnumFieldType 配置文件

如果在 Solr 模式中有多个枚举用途,则使用enumsConfig参数命名的文件可以包含多个具有不同名称的枚举值列表。

在此示例中,定义了两个值列表。每个列表都位于enum开始和结束标记之间

<?xml version="1.0" ?>
<enumsConfig>
  <enum name="priority">
    <value>Not Available</value>
    <value>Low</value>
    <value>Medium</value>
    <value>High</value>
    <value>Urgent</value>
  </enum>
  <enum name="risk">
    <value>Unknown</value>
    <value>Very Low</value>
    <value>Low</value>
    <value>Medium</value>
    <value>High</value>
    <value>Critical</value>
  </enum>
</enumsConfig>
更改值

在不重新建立索引的情况下,您不能更改<enum/>中的顺序或删除现有值。

但是,您可以向末尾添加新值。