[ 
https://issues.apache.org/jira/browse/SOLR-5084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13734210#comment-13734210
 ] 

Hoss Man commented on SOLR-5084:
--------------------------------

bq. ...nested element underneath the field type? I dont know if this is even 
possible or a good idea, but its an that would remove some xml files.

i don't think the schema parsing code can handle that -- it's attribute based, 
not nested element based

bq. should we enforce from the enum config that the integer values are 0-N or 
something simple? ...

yeah ... it would be tempting to not even let the config specify numeric values 
-- just an ordered list, except:

1) all hell would break loose if someone accidently inserted a new element 
anywhere other then the end of the list
2) you'd need/want a way to "disable" values form the middle of the list from 
working again.

#2 is a problem you'd need to worry about even if we keep the mappings explicit 
but enforce 0-N ... there needs to be something like...

{code}
  <enum name="severity">
    <pair name="Not Available" value="0"/>
    <pair name="Low" value="1"/>

    <!-- value w/o name passes validation but prevents it from being used --><
    <pair value="2"/> <!-- "Medium" use to exist, but was phased out -->

    <pair name="High" value="3"/>
    <pair name="Critical" value="4"/>       

    <!-- this however would fail, because we skipped 5-10 -->
    <pair name="Super Nova" value="11"/>
  </enum>
{code}

bq. ... This way, things like valuesources dont have to do hashing but simple 
array lookups.

I was actually thinking it would be nice to support multiple legal names (with 
one canonical for respones) per value, but that would preent the simple array 
lookps...

{code}
  <enum name="severity">
    <value int="0"><label>Not Available</label></value>
    <value int="1"><label>Low</label></value>

    <!-- value w/o name passes validation but prevents it from being used --><
    <value int="2" /> <!-- "Medium" use to exist, but was phased out -->

    <value int="3"><label>High</label></value>

    <value int="4">
      <label canonical="true">Critical</label>
      <label>Highest</label>
    </value>
  </enum>
{code}

                
> new field type - EnumField
> --------------------------
>
>                 Key: SOLR-5084
>                 URL: https://issues.apache.org/jira/browse/SOLR-5084
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Elran Dvir
>         Attachments: enumsConfig.xml, schema_example.xml, Solr-5084.patch, 
> Solr-5084.patch
>
>
> We have encountered a use case in our system where we have a few fields 
> (Severity. Risk etc) with a closed set of values, where the sort order for 
> these values is pre-determined but not lexicographic (Critical is higher than 
> High). Generically this is very close to how enums work.
> To implement, I have prototyped a new type of field: EnumField where the 
> inputs are a closed predefined  set of strings in a special configuration 
> file (similar to currency.xml).
> The code is based on 4.2.1.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to