列挙型フィールド
EnumFieldType を使用すると、値が閉じた集合であり、ソート順序は事前に決定されているが、アルファベット順でも数値順でもないフィールドを定義できます。これの例としては、重大度リストやリスク定義などがあります。
EnumField は非推奨になりました
EnumField は 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" />
すべてのフィールドタイプに共通するname
とclass
に加えて、このタイプはさらに2つのパラメータを取ります。
enumsConfig
-
必須
デフォルト: なし
このフィールドタイプで使用したいフィールド値とその順序の
<enum/>
リストを含む設定ファイルの名前。ファイルへのパスが指定されていない場合、ファイルはコレクションのconf
ディレクトリにある必要があります。 enumName
-
必須
デフォルト: なし
このタイプに使用する
enumsConfig
ファイル内の特定の列挙の名前。
フィールドタイプまたはフィールド定義のいずれかでdocValues="true"
を指定する必要があります。
EnumFieldType 設定ファイルの定義
enumsConfig
パラメータで指定されたファイルには、Solr スキーマで列挙を複数使用する場合、異なる名前を持つ複数の列挙値リストを含めることができます。
この例では、2つの値リストが定義されています。各リストは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>
値の変更
インデックスを再作成しない限り、 ただし、新しい値を末尾に追加することはできます。 |