@Override public boolean createIndex(String indexName, Object settings) { CreateIndexRequest request = new CreateIndexRequest(indexName); if (settings instanceof String) { request.settings(String.valueOf(settings), Requests.INDEX_CONTENT_TYPE); } else if (settings instanceof Map) { request.settings((Map) settings); } else if (settings instanceof XContentBuilder) { request.settings((XContentBuilder) settings); } try { return client.indices().create(request).isAcknowledged(); } catch (IOException e) { throw new ElasticsearchException("Error for creating index: " + request.toString(), e); } }
client.admin().indices().create( new CreateIndexRequest(indexKey) .settings( Settings.builder() .put("index.number_of_shards", numberOfShards)
client.admin().indices().create( new CreateIndexRequest(indexKey) .settings( Settings.builder() .put("index.number_of_shards", numberOfShards)
.settings(indexSettings)) .actionGet().isAcknowledged();
/** * Allows to set the settings using a json builder. */ public CreateIndexRequestBuilder setSettings(XContentBuilder builder) { request.settings(builder); return this; }
/** * The settings to create the index with. */ public CreateIndexRequestBuilder setSettings(Settings settings) { request.settings(settings); return this; }
/** * The settings to create the index with (either json/yaml/properties format) */ public CreateIndexRequestBuilder setSettings(Map<String, ?> source) { request.settings(source); return this; }
/** * The settings to create the index with. */ public CreateIndexRequestBuilder setSettings(Settings.Builder settings) { request.settings(settings); return this; }
/** * The settings to create the index with (either json or yaml format) */ public CreateIndexRequestBuilder setSettings(String source, XContentType xContentType) { request.settings(source, xContentType); return this; }
public ResizeRequestBuilder setSettings(Settings settings) { this.request.getTargetIndexRequest().settings(settings); return this; }
public RolloverRequestBuilder settings(Settings settings) { this.request.getCreateIndexRequest().settings(settings); return this; }
/** * Allows to set the settings using a json builder. */ public CreateIndexRequest settings(XContentBuilder builder) { settings(Strings.toString(builder), builder.contentType()); return this; }
/** * Sets the settings and mappings as a single source. */ @SuppressWarnings("unchecked") public CreateIndexRequest source(Map<String, ?> source, DeprecationHandler deprecationHandler) { boolean found = false; for (Map.Entry<String, ?> entry : source.entrySet()) { String name = entry.getKey(); if (SETTINGS.match(name, deprecationHandler)) { found = true; settings((Map<String, Object>) entry.getValue()); } else if (MAPPINGS.match(name, deprecationHandler)) { found = true; Map<String, Object> mappings = (Map<String, Object>) entry.getValue(); for (Map.Entry<String, Object> entry1 : mappings.entrySet()) { mapping(entry1.getKey(), (Map<String, Object>) entry1.getValue()); } } else if (ALIASES.match(name, deprecationHandler)) { found = true; aliases((Map<String, Object>) entry.getValue()); } } if (!found) { // the top level are settings, use them settings(source); } return this; }
@Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(); { builder.startObject(CreateIndexRequest.SETTINGS.getPreferredName()); { targetIndexRequest.settings().toXContent(builder, params); } builder.endObject(); builder.startObject(CreateIndexRequest.ALIASES.getPreferredName()); { for (Alias alias : targetIndexRequest.aliases()) { alias.toXContent(builder, params); } } builder.endObject(); } builder.endObject(); return builder; }
public boolean createIndex(String type, XContentBuilder mappingBuilder) { try { if (this.instance() == null) return false; CreateIndexRequest request = new CreateIndexRequest(name); request.settings(Settings.builder() .put("index.number_of_shards", 1) .put("index.number_of_shards", 5)); if (mappingBuilder != null) request.mapping(type, mappingBuilder); CreateIndexResponse response = this.client.indices().create(request, RequestOptions.DEFAULT); return response.isAcknowledged(); } catch (IOException e) { log.error(e.getMessage()); return false; } }
/** * The settings to create the index with (either json/yaml/properties format) */ @SuppressWarnings("unchecked") public CreateIndexRequest settings(Map source) { try { XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON); builder.map(source); settings(Strings.toString(builder), XContentType.JSON); } catch (IOException e) { throw new ElasticsearchGenerationException("Failed to generate [" + source + "]", e); } return this; }
@Override public ActionRequestValidationException validate() { ActionRequestValidationException validationException = targetIndexRequest == null ? null : targetIndexRequest.validate(); if (sourceIndex == null) { validationException = addValidationError("source index is missing", validationException); } if (targetIndexRequest == null) { validationException = addValidationError("target index request is missing", validationException); } if (targetIndexRequest.settings().getByPrefix("index.sort.").isEmpty() == false) { validationException = addValidationError("can't override index sort when resizing an index", validationException); } if (type == ResizeType.SPLIT && IndexMetaData.INDEX_NUMBER_OF_SHARDS_SETTING.exists(targetIndexRequest.settings()) == false) { validationException = addValidationError("index.number_of_shards is required for split operations", validationException); } assert copySettings == null || copySettings; return validationException; }
createIndexRequest.settings(taskResultIndexSettings()); createIndexRequest.index(TASK_INDEX); createIndexRequest.mapping(TASK_TYPE, taskResultIndexMapping(), XContentType.JSON);
static CreateIndexClusterStateUpdateRequest prepareCreateIndexRequest(final String providedIndexName, final String targetIndexName, final RolloverRequest rolloverRequest) { final CreateIndexRequest createIndexRequest = rolloverRequest.getCreateIndexRequest(); createIndexRequest.cause("rollover_index"); createIndexRequest.index(targetIndexName); return new CreateIndexClusterStateUpdateRequest(createIndexRequest, "rollover_index", targetIndexName, providedIndexName, true) .ackTimeout(createIndexRequest.timeout()) .masterNodeTimeout(createIndexRequest.masterNodeTimeout()) .settings(createIndexRequest.settings()) .aliases(createIndexRequest.aliases()) .waitForActiveShards(ActiveShardCount.NONE) // not waiting for shards here, will wait on the alias switch operation .mappings(createIndexRequest.mappings()); }
@Override protected void masterOperation(final CreateIndexRequest request, final ClusterState state, final ActionListener<CreateIndexResponse> listener) { String cause = request.cause(); if (cause.length() == 0) { cause = "api"; } final String indexName = indexNameExpressionResolver.resolveDateMathExpression(request.index()); final CreateIndexClusterStateUpdateRequest updateRequest = new CreateIndexClusterStateUpdateRequest(request, cause, indexName, request.index(), request.updateAllTypes()) .ackTimeout(request.timeout()).masterNodeTimeout(request.masterNodeTimeout()) .settings(request.settings()).mappings(request.mappings()) .aliases(request.aliases()) .waitForActiveShards(request.waitForActiveShards()); createIndexService.createIndex(updateRequest, ActionListener.wrap(response -> listener.onResponse(new CreateIndexResponse(response.isAcknowledged(), response.isShardsAcknowledged(), indexName)), listener::onFailure)); }