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

Reply via email to