The EnumField type allows defining a field whose values are a closed set, and the sort order is pre-determined but is not alphabetic nor numeric. Examples of this are severity lists, or risk definitions.
Defining an EnumField in schema.xml
The EnumField type definition is quite simple, as in this example defining field types for "priorityLevel" and "riskLevel" enumerations:
<fieldType name="priorityLevel" class="solr.EnumField" enumsConfig="enumsConfig.xml" enumName="priority"/>
<fieldType name="riskLevel" class="solr.EnumField" enumsConfig="enumsConfig.xml" enumName="risk" />
Besides the name
and the class
, which are common to all field types, this type also takes two additional parameters:
-
enumsConfig
: the name of a configuration file that contains the<enum/>
list of field values and their order that you wish to use with this field type. If a path to the file is not defined specified, the file should be in theconf
directory for the collection. -
enumName
: the name of the specific enumeration in theenumsConfig
file to use for this type.
Defining the EnumField configuration file
The file named with the enumsConfig
parameter can contain multiple enumeration value lists with different names if there are multiple uses for enumerations in your Solr schema.
In this example, there are two value lists defined. Each list is between enum
opening and closing tags:
<?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>
Changing Values
You cannot change the order, or remove, existing values in an You can however add new values to the end. |