docs: private void doUpdate() throws PageException, SearchException, IOException {
  	// check attributes
  	required("index", action, "collection", collection);
  	required("index", action, "key", key);
  
  	if (type == -1) type = (query == null) ? SearchIndex.TYPE_FILE : SearchIndex.TYPE_CUSTOM;
  
  	if (type == SearchIndex.TYPE_CUSTOM) {
  	    required("index", action, "body", body);
  	    // required("index",action,"query",query);
  	}
  	IndexResult result;
  
  	result = collection.index(pageContext, key, type, urlpath, title, body, language, extensions, query, recurse, categoryTree, category, timeout, custom1, custom2, custom3,
  		custom4);
  	if (!StringUtil.isEmpty(status)) pageContext.setVariable(status, toStruct(result));
      }