ElasticSearch\Transport\HTTP::search PHP Method

    public function search($query, array $options = array())
    {
        $result = false;
        if (is_array($query)) {
            /**
             * Array implies using the JSON query DSL
             */
            $arg = "_search";
            /**
             * $options may contain values like:
             * $options['routing'] = 'user123'
             * or
             * $options['preference'] = 'xyzabc123'
             */
            $url = $this->buildUrl(array($this->type, $arg), $options);
            $result = $this->call($url, "GET", $query);
        } elseif (is_string($query)) {
            /**
             * String based search means http query string search
             */
            $url = $this->buildUrl(array($this->type, "_search?q=" . $query));
            $result = $this->call($url, "POST", $options);
        } else {
            /**
             * no http query string search
             */
            $url = $this->buildUrl(array($this->type, "_search?"));
            $result = $this->call($url, "POST", $options);
        }
        return $result;
    }