1.4.2 solr字段类型
使用枚举字段
枚举字段类型允许定义一个这样的字段,字段的值是一个封闭的结果集.这排列顺序是预先定义好的,不是按照字母或者数字大小排序的.如严重性列表或者是风险定义的例子.
在schema.xml中定义一个EnumField.
<fieldType name="severityType" class="solr.EnumField" enumsConfig="enumsConfig.xml" enumName="severity"/>
name和class是所有字段类型的常规属性,这个类型还有额外的两个参数:
enumsConfig:配置文件的名称,配置文件里包含字段的值和相应的顺序,这个文件中可以包含几个不同字段值的列表.如果在solr应用中这个字段类型有多种用途的话.
enumName:用于这个类型的配置文件中列表的名称.(因为配置文件中有多个列表,所以需要选择一个列表的名称来做定位)
定义EnumField配置文件
文件名称在enumsConfig参数中定义,文件中应该定义name:value键值对,name是字段值,value是顺序号.高值value成员排在低value成员前面.如果在字段类型中没有定义路径,这个文件应该在对应集合(collection)的conf目录下.
在这个例子中,定义了两个列表的值.
<?xml version="1.0" ?> <enumsConfig> <enum name="severity"> <pair name="Not Available" value="0"/> <pair name="Low" value="1"/> <pair name="Medium" value="2"/> <pair name="High" value="3"/> <pair name="Critical" value="4"/> </enum> <enum name="risk"> <pair name="Unknown" value="0"/> <pair name="Very Low" value="1"/> <pair name="Low" value="2"/> <pair name="Medium" value="3"/> <pair name="High" value="4"/> <pair name="Critical" value="5"/> </enum> </enumsConfig>