org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticsearch Show documentation
Show all versions of elasticsearch Show documentation
Elasticsearch subproject :server
/*
* Licensed to Elastic Search and Shay Banon under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. Elastic Search licenses this
* file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.client.action.admin.indices.mapping.put;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
import org.elasticsearch.client.IndicesAdminClient;
import org.elasticsearch.client.action.admin.indices.support.BaseIndicesRequestBuilder;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentBuilder;
import java.util.Map;
/**
* @author kimchy (shay.banon)
*/
public class PutMappingRequestBuilder extends BaseIndicesRequestBuilder {
public PutMappingRequestBuilder(IndicesAdminClient indicesClient) {
super(indicesClient, new PutMappingRequest());
}
public PutMappingRequestBuilder setIndices(String... indices) {
request.indices(indices);
return this;
}
/**
* The type of the mappings. Not required since it can be defined explicitly within the mapping source.
* If it is not defined within the mapping source, then it is required.
*/
public PutMappingRequestBuilder setType(String type) {
request.type(type);
return this;
}
/**
* The mapping source definition.
*/
public PutMappingRequestBuilder setSource(XContentBuilder mappingBuilder) {
request.source(mappingBuilder);
return this;
}
/**
* The mapping source definition.
*/
public PutMappingRequestBuilder setSource(Map mappingSource) {
request.source(mappingSource);
return this;
}
/**
* The mapping source definition.
*/
public PutMappingRequestBuilder setSource(String mappingSource) {
request.source(mappingSource);
return this;
}
/**
* Timeout to wait till the put mapping gets acknowledged of all current cluster nodes. Defaults to
* 10s.
*/
public PutMappingRequestBuilder setTimeout(TimeValue timeout) {
request.timeout(timeout);
return this;
}
/**
* Timeout to wait till the put mapping gets acknowledged of all current cluster nodes. Defaults to
* 10s.
*/
public PutMappingRequestBuilder setTimeout(String timeout) {
request.timeout(timeout);
return this;
}
/**
* Sets the master node timeout in case the master has not yet been discovered.
*/
public PutMappingRequestBuilder setMasterNodeTimeout(TimeValue timeout) {
request.masterNodeTimeout(timeout);
return this;
}
/**
* If there is already a mapping definition registered against the type, then it will be merged. If there are
* elements that can't be merged are detected, the request will be rejected unless the
* {@link #setIgnoreConflicts(boolean)} is set. In such a case, the duplicate mappings will be rejected.
*/
public PutMappingRequestBuilder setIgnoreConflicts(boolean ignoreConflicts) {
request.ignoreConflicts(ignoreConflicts);
return this;
}
@Override protected void doExecute(ActionListener listener) {
client.putMapping(request, listener);
}
}