枚舉欄位

EnumFieldType 允許定義一個欄位,其值為封閉集合,且排序順序是預先決定的,但不是字母順序或數字順序。例如,嚴重性清單或風險定義。

EnumField 已被棄用

EnumField 已被棄用,改用 EnumFieldType;以下所有設定範例都使用 EnumFieldType。

在結構描述中定義 EnumFieldType

EnumFieldType 類型定義非常簡單,如本範例所示,定義「priorityLevel」和「riskLevel」列舉的欄位類型

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

除了所有欄位類型共有的 nameclass 之外,此類型還需要兩個額外參數

enumsConfig

必要

預設值:無

包含 <enum/> 欄位值及其順序的設定檔名稱,您希望將此欄位類型用於此順序。如果未指定檔案路徑,則該檔案應位於集合的 conf 目錄中。

enumName

必要

預設值:無

要用於此類型的 enumsConfig 檔案中特定列舉的名稱。

請注意,必須在欄位類型或欄位定義中指定 docValues="true"

定義 EnumFieldType 設定檔

enumsConfig 參數命名的檔案可以包含多個具有不同名稱的列舉值清單,如果您的 Solr 結構描述中有多個列舉用途。

在本範例中,定義了兩個值清單。每個清單都在 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/> 中現有值的順序或移除現有值。

但是,您可以在末尾新增新值。