docs: function(query) {
      var qparts = getQueryParts(goog.string.trim(query));
  
      // if it's trivial, avoid iteration and zipping costs
      if (qparts.length == 1) {
        // We optimize this case here to prevent dispatch further down the
        // chain, potentially slowing things down. We could more elegantly
        // handle this in filterDown(), but it's slower for simple things
        // that need to be fast (e.g., '#someId').
        var tef = getElementsFunc(qparts[0]);
        return function(root) {
          var r = tef(root, []);
          if (r) { r.nozip = true; }
          return r;
        }
      }
  
      // otherwise, break it up and return a runner that iterates over the parts
      // recursively
      return function(root) {
        return filterDown(root, qparts);
      }
    }