[
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]