EP_API::put_mapping PHP Method

put_mapping() public method

Send mapping to ES
Since: 0.9.0
public put_mapping ( ) : array | boolean | mixed
return array | boolean | mixed
    public function put_mapping()
    {
        if (defined('EP_IS_NETWORK') && EP_IS_NETWORK) {
            $es_version = get_site_option('ep_es_version', false);
        } else {
            $es_version = get_option('ep_es_version', false);
        }
        $es_version = $this->get_elasticsearch_version();
        if (empty($es_version)) {
            $es_version = apply_filters('ep_fallback_elasticsearch_version', '2.0');
        }
        if (!$es_version || version_compare($es_version, '5.0') < 0) {
            $mapping_file = 'pre-5-0.php';
        } else {
            $mapping_file = '5-0.php';
        }
        $mapping = (require apply_filters('ep_config_mapping_file', dirname(__FILE__) . '/../includes/mappings/' . $mapping_file));
        /**
         * We are removing shard/replica defaults but need to maintain the filters
         * for backwards compat.
         *
         * @since 1.4
         */
        global $wp_filter;
        if (!empty($wp_filter['ep_default_index_number_of_shards'])) {
            if (empty($mapping['settings']['index'])) {
                $mapping['settings']['index'] = array();
            }
            $mapping['settings']['index']['number_of_shards'] = (int) apply_filters('ep_default_index_number_of_shards', 5);
            // Default within Elasticsearch
        }
        if (!empty($wp_filter['ep_default_index_number_of_replicas'])) {
            if (empty($mapping['settings']['index'])) {
                $mapping['settings']['index'] = array();
            }
            $mapping['settings']['index']['number_of_replicas'] = (int) apply_filters('ep_default_index_number_of_replicas', 1);
        }
        $mapping = apply_filters('ep_config_mapping', $mapping);
        $index = ep_get_index_name();
        $request_args = array('body' => json_encode($mapping), 'method' => 'PUT');
        $request = ep_remote_request($index, apply_filters('ep_put_mapping_request_args', $request_args));
        $request = apply_filters('ep_config_mapping_request', $request, $index, $mapping);
        if (!is_wp_error($request) && 200 === wp_remote_retrieve_response_code($request)) {
            $response_body = wp_remote_retrieve_body($request);
            return json_decode($response_body);
        }
        return false;
    }