Trey Grainger commented on SOLR-9529:

Hmm... things were more inconsistent than I thought. There were two fundamental 
kinds of inconsistencies:
1) Inconsistencies within a single schema.
--This is what I described in the issue description regarding "*_dts" being 
handled incorrectly. I submitted a pull request to fix this in the three places 
we actually define both singular and plural field types: 

2) Inconsistencies across different schemas
While the three schemas listed above all separate out single valued and 
multiValued dynamic fields into different singular and plural field types, 
every other schema that ships with Solr only defines a single field type 
(string, boolean, etc.) and uses the dynamic field definition to determine 
whether the dynamic field should be single or multivalued. This works fine, of 
course, but is just inconsistent depending upon which schema file you actually 
end up using. 

Interestingly, the tech products example 
which sits at the same level as the basic_configs and the 
data_driven_schema_configs, for some reason handles these definitions 
differently, only defining one field type for both single and multivalued 
fields (for all types). The following places do the same thing:

So while my pull request fixes #1 so that all schemas are consistent with 
themselves, we still have inconsistency across the various schemas that ship 
with Solr in terms of what we name the field types for multivalued dynamic 
fields. If we are going to make these consistent, which way should we go - have 
a single field type for all single and multivalued fields (and define 
multivalued=true on the dynamic field definition instead), or separate out 
plural versions of the field type (booleans, strings, etc.) for multivalued 

> Dates Dynamic Field Inconsistently Defined in Schemas
> -----------------------------------------------------
>                 Key: SOLR-9529
>                 URL: https://issues.apache.org/jira/browse/SOLR-9529
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Trey Grainger
>            Priority: Minor
> There is a nice convention across all of the schemas that ship with Solr to 
> include field types for single valued fields (i.e. "string" -> "*_s", 
> "boolean" -> "*_b") and separate field types for multivalued fields (i.e. 
> "strings" -> "*_ss", "booleans" -> "*_bs"). Those definitions all follow the 
> pattern (using "string" as an example):
> <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
> <fieldType name="strings" class="solr.StrField" sortMissingLast="true" 
> multiValued="true"/>
> <dynamicField name="*_s" type="strings" indexed="true" stored="true"/>
> <dynamicField name="*_ss" type="strings" indexed="true" stored="true"/>
> For some reason, however, the "date" field type doesn't follow this pattern, 
> and is instead defined (inconsistently) as follows:
> <fieldType name="date" class="solr.TrieDateField" positionIncrementGap="0" 
> precisionStep="0"/>
> <fieldType name="dates" class="solr.TrieDateField" positionIncrementGap="0" 
> multiValued="true" precisionStep="0"/>
> <dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
> <dynamicField name="*_dts" type="date" multiValued="true" indexed="true" 
> stored="true"/>
> Note specifically that the "*_dts" field should instead be referencing the 
> "dates" type and not the "date" type, and that subsequently the 
> multiValued="true" setting would become unnecessary on the "*_dts" 
> dynamicField definition.
> I'll get a patch posted for this. Note that nothing is functionally broken, 
> it's just inconsistent and could be confusing for someone looking through the 
> schema or seeing their multivalued dates getting indexed into the field type 
> defined for single valued dates.

This message was sent by Atlassian JIRA

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

Reply via email to