This module may be a solution https://www.drupal.org/project/search_api_sorts


Otherwise using you method above - According to this post http://www.metaltoad.com/blog/date-boosting-solr-drupal-search-results

then you need to add an extra []

    $call_args['params']['freshness'][] = 'recip(abs(ms(NOW/HOUR,ds_changed)),3.16e-11,10,1)';


However after testing I still can get the result I want.  

For example the value 3.16e-11,10 ; as far as I understand it means a year of milliseconds that gives a score of 10 inside that time span. and then decrease after.  

For testing I used 

    call_args['params']['qf'][] = 'recip(abs(ms(NOW/HOUR,ds_changed)),86400000,21,1)';


which should give Posts added/changed on the day a score of 21 and then decreases daily. 

Testing with 3 identical listings.  And only title set at a boost rate over 1.  I cannot get the articles to listing in date. order. Have i missed something obvious.