Solr使用枚舉字段

2018-11-10 16:55 更新

EnumFieldType 允許定義一個字段,其值是一個封閉的集合,排序順序是預先確定的,但不是字母或數(shù)字。這是嚴重性列表或風險定義的示例。

注意:EnumField 已被棄用;EnumField 已被棄用,以支持 EnumFieldType;下面的所有配置示例都使用EnumFieldType。

在schema.xml中定義一個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,這個類型還需要兩個額外的參數(shù):

enumsConfig

包含 <enum/> 字段值列表的配置文件的名稱,以及您希望與此字段類型一起使用的順序。如果未定義指定文件的路徑,則該文件應位于 conf 集合的目錄中。

enumName

enumsConfig 用于此類型的文件中特定枚舉的名稱。

請注意,docValues="true" 必須在 EnumFieldType 字段類型或字段說明中指定。

定義 EnumFieldType 配置文件

如果在您的 Solr 架構(gòu)中有多個用于枚舉的使用,則使用 enumsConfig 參數(shù)命名的文件可以包含多個具有不同名稱的枚舉值列表。
在此示例中,定義了兩個值列表。每個列表在枚舉開始和結(jié)束標簽之間:

<?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>

Tip:更改值:您無法在 <enum/> 沒有重新索引的情況下更改順序或刪除現(xiàn)有值。但是,您可以將新值添加到末尾。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號