use of co.elastic.clients.elasticsearch._types.ElasticsearchException in project syncope by apache.
the class ElasticsearchIndexManager method createIndex.
public void createIndex(final String domain, final AnyTypeKind kind, final IndexSettings settings, final TypeMapping mappings) throws IOException {
try {
CreateIndexResponse response = doCreateIndex(domain, kind, settings, mappings);
LOG.debug("Successfully created {} for {}: {}", ElasticsearchUtils.getContextDomainName(domain, kind), kind.name(), response);
} catch (ElasticsearchException e) {
LOG.debug("Could not create index {} because it already exists", ElasticsearchUtils.getContextDomainName(domain, kind), e);
removeIndex(domain, kind);
doCreateIndex(domain, kind, settings, mappings);
}
}
use of co.elastic.clients.elasticsearch._types.ElasticsearchException in project core-ng-project by neowu.
the class ElasticSearchTypeImpl method update.
@Override
public void update(UpdateRequest<T> request) {
var watch = new StopWatch();
if (request.script == null)
throw new Error("request.script must not be null");
String index = request.index == null ? this.index : request.index;
try {
Map<String, JsonData> params = request.params == null ? Map.of() : request.params.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, value -> JsonData.of(value.getValue())));
elasticSearch.client.update(builder -> builder.index(index).id(request.id).script(s -> s.inline(i -> i.source(request.script).params(params))), documentClass);
} catch (IOException e) {
throw new UncheckedIOException(e);
} catch (ElasticsearchException e) {
throw elasticSearch.searchException(e);
} finally {
long elapsed = watch.elapsed();
ActionLogContext.track("elasticsearch", elapsed, 0, 1);
logger.debug("update, index={}, id={}, script={}, elapsed={}", index, request.id, request.script, elapsed);
checkSlowOperation(elapsed);
}
}
use of co.elastic.clients.elasticsearch._types.ElasticsearchException in project core-ng-project by neowu.
the class ElasticSearchTypeImpl method bulkIndex.
@Override
public void bulkIndex(BulkIndexRequest<T> request) {
var watch = new StopWatch();
if (request.sources == null || request.sources.isEmpty())
throw new Error("request.sources must not be empty");
String index = request.index == null ? this.index : request.index;
List<BulkOperation> operations = new ArrayList<>(request.sources.size());
for (Map.Entry<String, T> entry : request.sources.entrySet()) {
String id = entry.getKey();
T source = entry.getValue();
validator.validate(source, false);
operations.add(BulkOperation.of(builder -> builder.index(i -> i.index(index).id(id).document(source))));
}
long esTook = 0;
try {
BulkResponse response = elasticSearch.client.bulk(builder -> builder.operations(operations));
// mills to nano
esTook = response.took() * 1_000_000;
validate(response);
} catch (IOException e) {
throw new UncheckedIOException(e);
} catch (ElasticsearchException e) {
throw elasticSearch.searchException(e);
} finally {
long elapsed = watch.elapsed();
ActionLogContext.track("elasticsearch", elapsed, 0, request.sources.size());
logger.debug("bulkIndex, index={}, size={}, esTook={}, elapsed={}", index, request.sources.size(), esTook, elapsed);
checkSlowOperation(elapsed);
}
}
use of co.elastic.clients.elasticsearch._types.ElasticsearchException in project core-ng-project by neowu.
the class ElasticSearchTypeImpl method index.
@Override
public void index(IndexRequest<T> request) {
var watch = new StopWatch();
String index = request.index == null ? this.index : request.index;
validator.validate(request.source, false);
try {
elasticSearch.client.index(builder -> builder.index(index).id(request.id).document(request.source));
} catch (IOException e) {
throw new UncheckedIOException(e);
} catch (ElasticsearchException e) {
throw elasticSearch.searchException(e);
} finally {
long elapsed = watch.elapsed();
ActionLogContext.track("elasticsearch", elapsed, 0, 1);
logger.debug("index, index={}, id={}, elapsed={}", index, request.id, elapsed);
checkSlowOperation(elapsed);
}
}
use of co.elastic.clients.elasticsearch._types.ElasticsearchException in project core-ng-project by neowu.
the class ElasticSearchTypeImpl method bulkDelete.
@Override
public void bulkDelete(BulkDeleteRequest request) {
var watch = new StopWatch();
if (request.ids == null || request.ids.isEmpty())
throw new Error("request.ids must not be empty");
String index = request.index == null ? this.index : request.index;
List<BulkOperation> operations = new ArrayList<>(request.ids.size());
for (String id : request.ids) {
operations.add(BulkOperation.of(builder -> builder.delete(r -> r.index(index).id(id))));
}
long esTook = 0;
try {
BulkResponse response = elasticSearch.client.bulk(builder -> builder.operations(operations));
// mills to nano
esTook = response.took() * 1_000_000;
validate(response);
} catch (IOException e) {
throw new UncheckedIOException(e);
} catch (ElasticsearchException e) {
throw elasticSearch.searchException(e);
} finally {
long elapsed = watch.elapsed();
int size = request.ids.size();
ActionLogContext.track("elasticsearch", elapsed, 0, size);
logger.debug("bulkDelete, index={}, ids={}, size={}, esTook={}, elapsed={}", index, request.ids, size, esTook, elapsed);
checkSlowOperation(elapsed);
}
}
Aggregations