use of org.graylog.shaded.elasticsearch7.org.elasticsearch.client.indices.GetIndexRequest in project chili-core by codingchili.
the class ElasticMap method createIndexIfNotExists.
private Future<Void> createIndexIfNotExists() {
Promise<Void> promise = Promise.promise();
context.blocking((done) -> {
IndicesClient indices = client.indices();
try {
var exists = indices.exists(new GetIndexRequest(index), RequestOptions.DEFAULT);
if (!exists) {
var request = new CreateIndexRequest(index);
configureMapping(request);
configureSettings(request);
indices.create(request, RequestOptions.DEFAULT);
}
done.complete();
} catch (Throwable e) {
done.fail(e);
}
}, promise);
return promise.future();
}
use of org.graylog.shaded.elasticsearch7.org.elasticsearch.client.indices.GetIndexRequest in project sonarqube by SonarSource.
the class EsRequestDetailsTest method should_format_GetIndexRequest.
@Test
public void should_format_GetIndexRequest() {
GetIndexRequest request = new GetIndexRequest("index-1", "index-2");
assertThat(EsRequestDetails.computeDetailsAsString(request)).isEqualTo("ES indices exists request on indices 'index-1,index-2'");
}
use of org.graylog.shaded.elasticsearch7.org.elasticsearch.client.indices.GetIndexRequest in project sonarqube by SonarSource.
the class MigrationEsClientImpl method addMappingToExistingIndex.
@Override
public void addMappingToExistingIndex(String index, String type, String mappingName, String mappingType, Map<String, String> options) {
String[] indices = client.getIndex(new GetIndexRequest(index)).getIndices();
if (indices != null && indices.length == 1) {
Loggers.get(getClass()).info("Add mapping [{}] to Elasticsearch index [{}]", mappingName, index);
String mappingOptions = Stream.concat(Stream.of(Maps.immutableEntry("type", mappingType)), options.entrySet().stream()).map(e -> e.getKey() + "=" + e.getValue()).collect(Collectors.joining(","));
client.putMapping(new PutMappingRequest(index).type(type).source(mappingName, mappingOptions));
updatedIndices.add(index);
} else {
throw new IllegalStateException("Expected only one index to be found, actual [" + String.join(",", indices) + "]");
}
}
use of org.graylog.shaded.elasticsearch7.org.elasticsearch.client.indices.GetIndexRequest in project sonarqube by SonarSource.
the class IndexCreator method start.
@Override
public void start() {
// create the "metadata" index first
IndexType.IndexMainType metadataMainType = TYPE_METADATA;
if (!client.indexExists(new GetIndexRequest(metadataMainType.getIndex().getName()))) {
IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext();
metadataIndexDefinition.define(context);
NewIndex index = context.getIndices().values().iterator().next();
createIndex(index.build(), false);
} else {
ensureWritable(metadataMainType);
}
checkDbCompatibility(definitions.getIndices().values());
// create indices that do not exist or that have a new definition (different mapping, cluster enabled, ...)
definitions.getIndices().values().stream().filter(i -> !i.getMainType().equals(metadataMainType)).forEach(index -> {
boolean exists = client.indexExists(new GetIndexRequest(index.getMainType().getIndex().getName()));
if (!exists) {
createIndex(index, true);
} else if (hasDefinitionChange(index)) {
updateIndex(index);
} else {
ensureWritable(index.getMainType());
}
});
}
use of org.graylog.shaded.elasticsearch7.org.elasticsearch.client.indices.GetIndexRequest in project gora by apache.
the class ElasticsearchStore method createSchema.
@Override
public void createSchema() throws GoraException {
CreateIndexRequest request = new CreateIndexRequest(elasticsearchMapping.getIndexName());
Map<String, Object> properties = new HashMap<>();
for (Map.Entry<String, Field> entry : elasticsearchMapping.getFields().entrySet()) {
Map<String, Object> fieldType = new HashMap<>();
fieldType.put("type", entry.getValue().getDataType().getType().name().toLowerCase(Locale.ROOT));
if (entry.getValue().getDataType().getType() == Field.DataType.SCALED_FLOAT) {
fieldType.put("scaling_factor", entry.getValue().getDataType().getScalingFactor());
}
properties.put(entry.getKey(), fieldType);
}
// Special field for range query
properties.put("gora_id", new HashMap<String, Object>() {
{
put("type", "keyword");
}
});
Map<String, Object> mapping = new HashMap<>();
mapping.put("properties", properties);
request.mapping(mapping);
try {
if (!client.indices().exists(new GetIndexRequest(elasticsearchMapping.getIndexName()), RequestOptions.DEFAULT)) {
client.indices().create(request, RequestOptions.DEFAULT);
}
} catch (IOException ex) {
throw new GoraException(ex);
}
}
Aggregations