[ 
https://issues.apache.org/jira/browse/SOLR-4676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Smiley updated SOLR-4676:
-------------------------------

    Attachment: SOLR-4676_Share_Lucene_FieldType_in_SchemaField.patch

Here is the attached patch.  In affected methods I added or enhanced the 
documentation.  In particular, I clarified that createField() (singular) is not 
for DocValues and that generally createFields() should be called.  And I 
clarified that it can return null.

One inconsistency I found as a side-effect of this is that if a TrieField was 
docValues enabled, yet not stored nor indexed, createField() would return 
non-null -- a Field not marked as stored or indexed. That was odd and I changed 
that.  That did mean that in this circumstance there wasn't a Field to call 
numericValue() on to index DocValues, and so I added stringToNumber() for that. 
 And that is a good segue...

One thing that I think is really bad is the use of switch statements in 
TrieField to dispatch on the types.  Shouldn't a little bit of straight-forward 
OOP be used to have subclasses do some of these basic things?
                
> Share a Lucene FieldType instance instead of creating on each call to 
> createField()
> -----------------------------------------------------------------------------------
>
>                 Key: SOLR-4676
>                 URL: https://issues.apache.org/jira/browse/SOLR-4676
>             Project: Solr
>          Issue Type: Improvement
>          Components: Schema and Analysis
>            Reporter: David Smiley
>            Assignee: David Smiley
>            Priority: Minor
>         Attachments: SOLR-4676_Share_Lucene_FieldType_in_SchemaField.patch
>
>
> I think the Lucene FieldType instances should be cached on Solr's SchemaField 
> so that they don't have to be needlessly re-created for each indexed value 
> that runs through Solr in SchemaField.createField(). The only obstacle I see 
> to this is that getIndexOptions(field,val) takes the value, and if that value 
> were to alter the logic then the FieldType can't be shared. This is a 
> protected method and I don't see anything that overrides it, and the default 
> implementation doesn't use the value. So I think it can be removed.  Patch in 
> progress...

--
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to