[
https://issues.apache.org/jira/browse/SOLR-5944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219447#comment-15219447
]
Noble Paul commented on SOLR-5944:
----------------------------------
There are a lot of places where a toString() is done and then parsing is done.
It much cheaper to do an {{instanceof}} check
look at the following block in
{{AtomicUpdateDocumentMerger.doInPlaceUpdateMerge()}}
{code:java}
if (oldValue instanceof Long) {
result = ((Long) oldValue).longValue() +
Long.parseLong(value.toString());
} else if (oldValue instanceof Float) {
result = ((Float) oldValue).floatValue() +
Float.parseFloat(value.toString());
} else if (oldValue instanceof Double) {
result = ((Double) oldValue).doubleValue() +
Double.parseDouble(value.toString());
} else {
// int, short, byte
result = ((Integer) oldValue).intValue() +
Integer.parseInt(value.toString());
}
{code}
can be optimized as follows
{code:java}
if (oldValue instanceof Long) {
result = (Long) oldValue + (value instanceof Number ?
((Number) value).longValue() : Long.parseLong(value.toString()));
} else if (oldValue instanceof Float) {
result = (Float) oldValue + (value instanceof Number ?
((Number) value).floatValue() : Float.parseFloat(value.toString()));
} else if (oldValue instanceof Double) {
result = (Double) oldValue + (value instanceof Number ?
((Number) value).doubleValue() : Double.parseDouble(value.toString()));
} else {
// int, short, byte
result = (Integer) oldValue + (value instanceof Number ?
((Number) value).intValue() : Integer.parseInt(value.toString()));
}
{code}
> Support updates of numeric DocValues
> ------------------------------------
>
> Key: SOLR-5944
> URL: https://issues.apache.org/jira/browse/SOLR-5944
> Project: Solr
> Issue Type: New Feature
> Reporter: Ishan Chattopadhyaya
> Assignee: Shalin Shekhar Mangar
> Attachments: DUP.patch, SOLR-5944.patch, SOLR-5944.patch,
> SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch,
> SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch,
> SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch,
> SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch,
> SOLR-5944.patch, SOLR-5944.patch, SOLR-5944.patch
>
>
> LUCENE-5189 introduced support for updates to numeric docvalues. It would be
> really nice to have Solr support this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]