/** * Create the network alias from an array of indexes * * @param array $indexes * @since 0.9.0 * @return array|bool */ public function create_network_alias($indexes) { $url = untrailingslashit(EP_HOST) . '/_aliases'; $args = array('actions' => array()); foreach ($indexes as $index) { $args['actions'][] = array('add' => array('index' => $index, 'alias' => ep_get_network_alias())); } $request_args = array('body' => json_encode($args), 'method' => 'POST', 'headers' => $this->format_request_headers()); $request = wp_remote_request($url, apply_filters('ep_create_network_alias_request_args', $request_args, $args, $indexes)); if (!is_wp_error($request) && (200 >= wp_remote_retrieve_response_code($request) && 300 > wp_remote_retrieve_response_code($request))) { $response_body = wp_remote_retrieve_body($request); return json_decode($response_body); } return false; }
/** * Retrieves search stats from Elasticsearch. * * Retrieves various search statistics from the ES server. * * @since 1.9 * * @param int $blog_id Id of blog to get stats. * * @return array Contains the status message or the returned statistics. */ public function get_search_status($blog_id = null) { if (is_wp_error(ep_get_host())) { return array('status' => false, 'msg' => esc_html__('Elasticsearch Host is not available.', 'elasticpress')); } else { if (is_multisite() && null === $blog_id) { $path = ep_get_network_alias() . '/_stats/search/'; } else { $path = ep_get_index_name($blog_id) . '/_stats/search/'; } $request = ep_remote_request($path, array('method' => 'GET')); } if (!is_wp_error($request)) { $stats = json_decode(wp_remote_retrieve_body($request)); if (isset($stats->_all)) { return $stats->_all->primaries->search; } return false; } return array('status' => false, 'msg' => $request->get_error_message()); }
/** * Create the network alias from an array of indexes * * @param array $indexes * @since 0.9.0 * @return array|bool */ public function create_network_alias($indexes) { $path = '_aliases'; $args = array('actions' => array()); foreach ($indexes as $index) { $args['actions'][] = array('add' => array('index' => $index, 'alias' => ep_get_network_alias())); } $request_args = array('body' => json_encode($args), 'method' => 'POST'); $request = ep_remote_request($path, apply_filters('ep_create_network_alias_request_args', $request_args, $args, $indexes)); if (!is_wp_error($request) && (200 >= wp_remote_retrieve_response_code($request) && 300 > wp_remote_retrieve_response_code($request))) { $response_body = wp_remote_retrieve_body($request); return json_decode($response_body); } return false; }
/** * Determine the index variable to be passed to ep_get_index_url. * * @param string $scope * @since 1.1.1 * @return mixed */ private function _get_index($scope = 'current') { $index = null; if ('all' === $scope) { $index = ep_get_network_alias(); } elseif (is_int($scope)) { $index = ep_get_index_name($scope); } elseif (is_array($scope)) { $index = array(); foreach ($scope as $site_id) { $index[] = ep_get_index_name($site_id); } } return $index; }