   totype = if rename? then (if rename.indexOf('/') isnt -1 then rename.split('/')[1] else rename) else type
   intermediate = if not rename? and fromurl is tourl then 'temp_reindex_' else ''
   processed = 0
+  scroll = if change? then '60m' else '5m'
+  sz = if change? then 500 else 5000
   try
     try pim = RetryHttp.call 'PUT', tourl + '/' + intermediate + toindex, {retry:API.es._retries}
     pitm = RetryHttp.call 'PUT', tourl + '/' + intermediate + toindex + '/_mapping/' + totype, {data: mapping, retry:API.es._retries}
-    ret = RetryHttp.call 'POST', fromurl + '/' + index + '/' + type + '/_search?search_type=scan&scroll=1m', {data:{query: { match_all: {} }, size: 10000 }, retry:API.es._retries}
+    ret = RetryHttp.call 'POST', fromurl + '/' + index + '/' + type + '/_search?search_type=scan&scroll=' + scroll, {data:{query: { match_all: {} }, size: sz }, retry:API.es._retries}
     if ret.data?._scroll_id?
-      res = RetryHttp.call 'GET', fromurl + '/_search/scroll?scroll=1m&scroll_id=' + ret.data._scroll_id, {retry:API.es._retries}
+      res = RetryHttp.call 'GET', fromurl + '/_search/scroll?scroll=' + scroll + '&scroll_id=' + ret.data._scroll_id, {retry:API.es._retries}
       while (res?.data?.hits?.hits? and res.data.hits.hits.length)
         processed += res.data.hits.hits.length
         pkg = ''

            hp = RetryHttp.call 'POST', tourl + '/_bulk', {content:pkg, headers:{'Content-Type':'text/plain'},retry:API.es._retries}
            try refreshed = RetryHttp.call 'POST', tourl + '/' + toindex + '/_refresh', {retry:API.es._retries}
            pkg = ''
            res = RetryHttp.call 'GET', tourl + '/_search/scroll?scroll=1m&scroll_id=' + res.data._scroll_id, {retry:API.es._retries}
        deleted_temp = RetryHttp.call 'DELETE', tourl + '/' + intermediate + toindex, {retry:API.es._retries}
        API.log {msg: 'Reindexed ' + index + ' ' + type + ' with ' + processed + ' records, to ' + tourl + '/' + intermediate + toindex + '/' + totype + ' with intermediate index at ' + intermediate + toindex, level:'warn', notify:true}
      catch err
        processed = false
        API.log {msg: 'Reindex failed at recreate step for ' + index + ' ' + type, level:'warn', notify:true, error: err}

      try
        try nim = RetryHttp.call 'PUT', tourl + '/' + toindex, {retry:API.es._retries} # will fail if index still exists, but that is OK
        nitm = RetryHttp.call 'PUT', tourl + '/' + toindex + '/_mapping/' + totype, {data: mapping, retry:API.es._retries}
        ret = RetryHttp.call 'POST', tourl + '/' + intermediate + toindex + '/' + totype + '/_search?search_type=scan&scroll=' + scroll, {data:{query: { match_all: {} }, size: sz }, retry:API.es._retries}
        if ret.data?._scroll_id?
          res = RetryHttp.call 'GET', tourl + '/_search/scroll?scroll=' + scroll + '&scroll_id=' + ret.data._scroll_id, {retry:API.es._retries}
          while (res?.data?.hits?.hits? and res.data.hits.hits.length)
            pkg = ''
            for row in res.data.hits.hits
