codecamp

Solr使用枚举字段

EnumFieldType 允许定义一个字段,其值是一个封闭的集合,排序顺序是预先确定的,但不是字母或数字。这是严重性列表或风险定义的示例。

注意: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,这个类型还需要两个额外的参数:

enumsConfig

包含 <enum/> 字段值列表的配置文件的名称,以及您希望与此字段类型一起使用的顺序。如果未定义指定文件的路径,则该文件应位于 conf 集合的目录中。

enumName

enumsConfig 用于此类型的文件中特定枚举的名称。

请注意,docValues="true" 必须在 EnumFieldType 字段类型或字段说明中指定。

定义 EnumFieldType 配置文件

如果在您的 Solr 架构中有多个用于枚举的使用,则使用 enumsConfig 参数命名的文件可以包含多个具有不同名称的枚举值列表。
在此示例中,定义了两个值列表。每个列表在枚举开始和结束标签之间:

<?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/> 没有重新索引的情况下更改顺序或删除现有值。但是,您可以将新值添加到末尾。
Solr使用日期字段类型
Solr用例的字段属性
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

SolrCloud

SolrCloud配置和参数

如何使用AsciiDoc

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }