package org.xbib.elasticsearch.action.search.helper; import org.elasticsearch.action.get.GetRequestBuilder; import org.elasticsearch.common.logging.ESLogger; import org.elasticsearch.common.logging.ESLoggerFactory; import java.io.IOException; /** * Helper class for Elasticsearch get requests */ public class BasicGetRequest { private final ESLogger logger = ESLoggerFactory.getLogger(BasicGetRequest.class.getName()); private GetRequestBuilder getRequestBuilder; private String index; private String type; private String id; public BasicGetRequest newRequest(GetRequestBuilder getRequestBuilder) { this.getRequestBuilder = getRequestBuilder; return this; } public GetRequestBuilder getRequestBuilder() { return getRequestBuilder; } public BasicGetRequest index(String index) { if (index != null && !"*".equals(index)) { this.index = index; } return this; } public String index() { return index; } public BasicGetRequest type(String type) { if (type != null && !"*".equals(type)) { this.type = type; } return this; } public String type() { return type; } public BasicGetRequest id(String id) { this.id = id; return this; } public String id() { return id; } public BasicGetResponse execute() throws IOException { BasicGetResponse response = new BasicGetResponse(); if (getRequestBuilder == null) { return response; } logger.info(" get request: {}/{}/{}", getRequestBuilder.request().index(), getRequestBuilder.request().type(), getRequestBuilder.request().id()); getRequestBuilder .setIndex(index) .setType(type) .setId(id); long t0 = System.currentTimeMillis(); response.setResponse(getRequestBuilder.execute().actionGet()); long t1 = System.currentTimeMillis(); logger.info(" get request complete: {}/{}/{} [{}ms] {}", getRequestBuilder.request().index(), getRequestBuilder.request().type(), getRequestBuilder.request().id(), (t1 - t0), response.exists()); return response; } }