Loading vessels-view/src/main/java/es/redmic/vesselsview/repository/vessel/VesselESRepository.java +36 −23 Original line number Diff line number Diff line Loading @@ -6,18 +6,21 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.MultiSearchRequestBuilder; import org.elasticsearch.action.search.MultiSearchRequest; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.stereotype.Repository; import es.redmic.elasticsearchlib.data.repository.RWDataESRepository; import es.redmic.exception.common.ExceptionType; import es.redmic.exception.elasticsearch.ESQueryException; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.query.dto.MetadataQueryDTO; import es.redmic.vesselsview.model.vessel.Vessel; Loading @@ -29,7 +32,7 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery implements IDataRepository<Vessel, MetadataQueryDTO> { private static String[] INDEX = { "platform" }; private static String[] TYPE = { "vessel" }; private static String TYPE = "vessel"; // @formatter:off Loading @@ -51,7 +54,7 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery doc = jsonBuilder().startObject().field("type", objectMapper.convertValue(vesselType, Map.class)) .endObject(); } catch (IllegalArgumentException | IOException e1) { LOGGER.debug("Error modificando el item con id " + vesselId + " en " + getIndex()[0] + " " + getType()[0]); LOGGER.debug("Error modificando el item con id " + vesselId + " en " + getIndex()[0] + " " + getType()); return new EventApplicationResult(ExceptionType.ES_UPDATE_DOCUMENT.toString()); } Loading @@ -71,21 +74,26 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery imoTerm = QueryBuilders.termQuery(IMO_PROPERTY, modelToIndex.getImo()); } SearchRequestBuilder requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1), requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), requestBuilderImo = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(imoTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderId) .add(requestBuilderMmsi); SearchSourceBuilder requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1), requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderImo = new SearchSourceBuilder().query(imoTerm).size(1); request .add(new SearchRequest().indices(getIndex()).source(requestBuilderId)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)); if (imoTerm != null) multiSearchRequestBuilder.add(requestBuilderImo); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderImo)); MultiSearchResponse sr = multiSearchRequestBuilder.get(); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading Loading @@ -128,23 +136,28 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery .mustNot(QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId())); } SearchRequestBuilder requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), MultiSearchRequest request = new MultiSearchRequest(); SearchSourceBuilder requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderImo = null; if (imoTerm != null) { requestBuilderImo = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(imoTerm).setSize(1); requestBuilderImo = new SearchSourceBuilder().query(imoTerm).size(1); } MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderMmsi); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)); if (requestBuilderImo != null) { multiSearchRequestBuilder.add(requestBuilderImo); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderImo)); } MultiSearchResponse sr = multiSearchRequestBuilder.get(); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading vessels-view/src/main/java/es/redmic/vesselsview/repository/vesseltracking/VesselTrackingESRepository.java +38 −25 Original line number Diff line number Diff line Loading @@ -6,19 +6,22 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.MultiSearchRequestBuilder; import org.elasticsearch.action.search.MultiSearchRequest; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.joda.time.format.DateTimeFormat; import org.springframework.stereotype.Repository; import es.redmic.elasticsearchlib.geodata.repository.RWGeoDataESRepository; import es.redmic.exception.common.ExceptionType; import es.redmic.exception.elasticsearch.ESQueryException; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.vesselslib.utils.VesselTrackingUtil; Loading @@ -31,7 +34,7 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac implements IGeoDataRepository<VesselTracking, DataQueryDTO> { private static String[] INDEX = { "tracking-vessel" }; private static String[] TYPE = { "_doc" }; private static String TYPE = "_doc"; // @formatter:off Loading @@ -57,8 +60,8 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac doc = jsonBuilder().startObject().field(VESSEL_PROPERTY, objectMapper.convertValue(vessel, Map.class)) .endObject(); } catch (IllegalArgumentException | IOException e1) { LOGGER.debug("Error modificando el item con id " + vesselTrackingId + " en " + getIndex()[0] + " " + getType()[0]); LOGGER.debug( "Error modificando el item con id " + vesselTrackingId + " en " + getIndex()[0] + " " + getType()); return new EventApplicationResult(ExceptionType.ES_UPDATE_DOCUMENT.toString()); } Loading Loading @@ -101,19 +104,24 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac uuidTerm = auxTerm; } SearchRequestBuilder requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1), requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), requestBuilderUuid = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(uuidTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderId) .add(requestBuilderMmsi) .add(requestBuilderUuid); SearchSourceBuilder requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1), requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderUuid = new SearchSourceBuilder().query(uuidTerm).size(1); MultiSearchResponse sr = multiSearchRequestBuilder.get(); request .add(new SearchRequest().indices(getIndex()).source(requestBuilderId)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderUuid)); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading Loading @@ -176,23 +184,28 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac .must(QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId())) .mustNot(QueryBuilders.termQuery(UUID_PROPERTY, modelToIndex.getUuid())); SearchRequestBuilder requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), MultiSearchRequest request = new MultiSearchRequest(); SearchSourceBuilder requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderId = null; if (idTerm != null) { requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1); requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1); } MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderMmsi); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)); if (requestBuilderId != null) { multiSearchRequestBuilder.add(requestBuilderId); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderId)); } MultiSearchResponse sr = multiSearchRequestBuilder.get(); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading vessels-view/src/main/java/es/redmic/vesselsview/repository/vesseltype/VesselTypeESRepository.java +34 −15 Original line number Diff line number Diff line package es.redmic.vesselsview.repository.vesseltype; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.MultiSearchRequest; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.stereotype.Repository; import es.redmic.elasticsearchlib.data.repository.RWDataESRepository; import es.redmic.exception.common.ExceptionType; import es.redmic.exception.elasticsearch.ESQueryException; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.query.dto.SimpleQueryDTO; import es.redmic.vesselsview.model.vesseltype.VesselType; Loading @@ -23,7 +28,7 @@ public class VesselTypeESRepository extends RWDataESRepository<VesselType, Simpl implements IDataRepository<VesselType, SimpleQueryDTO> { private static String[] INDEX = { "platform-domains" }; private static String[] TYPE = { "vesseltype" }; private static String TYPE = "vesseltype"; // @formatter:off Loading @@ -42,18 +47,25 @@ public class VesselTypeESRepository extends RWDataESRepository<VesselType, Simpl QueryBuilder idTerm = QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId()), codeTerm = QueryBuilders.termQuery(CODE_PROPERTY, modelToIndex.getCode()); SearchRequestBuilder requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1), requestBuilderCode = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(codeTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchResponse sr = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderId) .add(requestBuilderCode) .get(); SearchSourceBuilder requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1), requestBuilderCode = new SearchSourceBuilder().query(codeTerm).size(1); request .add(new SearchRequest().indices(getIndex()).source(requestBuilderId)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderCode)); // @formatter:on MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } Map<String, String> arguments = new HashMap<>(); Item[] responses = sr.getResponses(); Loading Loading @@ -81,15 +93,22 @@ public class VesselTypeESRepository extends RWDataESRepository<VesselType, Simpl .must(QueryBuilders.termQuery(CODE_PROPERTY, modelToIndex.getCode())) .mustNot(QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId())); SearchRequestBuilder requestBuilderCode = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(codeTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchResponse sr = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderCode) .get(); SearchSourceBuilder requestBuilderCode = new SearchSourceBuilder().query(codeTerm).size(1); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderCode)); // @formatter:on MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } Map<String, String> arguments = new HashMap<>(); Item[] responses = sr.getResponses(); Loading vessels-view/src/main/resources/application-dev.properties +2 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,8 @@ spring.kafka.properties.schema.registry.url=http://redmic.net:18081 #elastic elastic.addresses=localhost elastic.port=9301 elastic.port=9201 elastic.secured=false redmic.elasticsearch.check.mappings=true redmic.elasticsearch.create.mappings=true Loading vessels-view/src/main/resources/application-pre.properties +2 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,8 @@ spring.kafka.properties.schema.registry.url=http://schema-registry:8081 #elastic elastic.addresses=es6-1 elastic.port=9300 elastic.port=9200 elastic.secured=true redmic.elasticsearch.check.mappings=true redmic.elasticsearch.create.mappings=true Loading Loading
vessels-view/src/main/java/es/redmic/vesselsview/repository/vessel/VesselESRepository.java +36 −23 Original line number Diff line number Diff line Loading @@ -6,18 +6,21 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.MultiSearchRequestBuilder; import org.elasticsearch.action.search.MultiSearchRequest; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.stereotype.Repository; import es.redmic.elasticsearchlib.data.repository.RWDataESRepository; import es.redmic.exception.common.ExceptionType; import es.redmic.exception.elasticsearch.ESQueryException; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.query.dto.MetadataQueryDTO; import es.redmic.vesselsview.model.vessel.Vessel; Loading @@ -29,7 +32,7 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery implements IDataRepository<Vessel, MetadataQueryDTO> { private static String[] INDEX = { "platform" }; private static String[] TYPE = { "vessel" }; private static String TYPE = "vessel"; // @formatter:off Loading @@ -51,7 +54,7 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery doc = jsonBuilder().startObject().field("type", objectMapper.convertValue(vesselType, Map.class)) .endObject(); } catch (IllegalArgumentException | IOException e1) { LOGGER.debug("Error modificando el item con id " + vesselId + " en " + getIndex()[0] + " " + getType()[0]); LOGGER.debug("Error modificando el item con id " + vesselId + " en " + getIndex()[0] + " " + getType()); return new EventApplicationResult(ExceptionType.ES_UPDATE_DOCUMENT.toString()); } Loading @@ -71,21 +74,26 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery imoTerm = QueryBuilders.termQuery(IMO_PROPERTY, modelToIndex.getImo()); } SearchRequestBuilder requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1), requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), requestBuilderImo = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(imoTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderId) .add(requestBuilderMmsi); SearchSourceBuilder requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1), requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderImo = new SearchSourceBuilder().query(imoTerm).size(1); request .add(new SearchRequest().indices(getIndex()).source(requestBuilderId)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)); if (imoTerm != null) multiSearchRequestBuilder.add(requestBuilderImo); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderImo)); MultiSearchResponse sr = multiSearchRequestBuilder.get(); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading Loading @@ -128,23 +136,28 @@ public class VesselESRepository extends RWDataESRepository<Vessel, MetadataQuery .mustNot(QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId())); } SearchRequestBuilder requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), MultiSearchRequest request = new MultiSearchRequest(); SearchSourceBuilder requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderImo = null; if (imoTerm != null) { requestBuilderImo = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(imoTerm).setSize(1); requestBuilderImo = new SearchSourceBuilder().query(imoTerm).size(1); } MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderMmsi); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)); if (requestBuilderImo != null) { multiSearchRequestBuilder.add(requestBuilderImo); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderImo)); } MultiSearchResponse sr = multiSearchRequestBuilder.get(); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading
vessels-view/src/main/java/es/redmic/vesselsview/repository/vesseltracking/VesselTrackingESRepository.java +38 −25 Original line number Diff line number Diff line Loading @@ -6,19 +6,22 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.MultiSearchRequestBuilder; import org.elasticsearch.action.search.MultiSearchRequest; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.joda.time.format.DateTimeFormat; import org.springframework.stereotype.Repository; import es.redmic.elasticsearchlib.geodata.repository.RWGeoDataESRepository; import es.redmic.exception.common.ExceptionType; import es.redmic.exception.elasticsearch.ESQueryException; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.vesselslib.utils.VesselTrackingUtil; Loading @@ -31,7 +34,7 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac implements IGeoDataRepository<VesselTracking, DataQueryDTO> { private static String[] INDEX = { "tracking-vessel" }; private static String[] TYPE = { "_doc" }; private static String TYPE = "_doc"; // @formatter:off Loading @@ -57,8 +60,8 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac doc = jsonBuilder().startObject().field(VESSEL_PROPERTY, objectMapper.convertValue(vessel, Map.class)) .endObject(); } catch (IllegalArgumentException | IOException e1) { LOGGER.debug("Error modificando el item con id " + vesselTrackingId + " en " + getIndex()[0] + " " + getType()[0]); LOGGER.debug( "Error modificando el item con id " + vesselTrackingId + " en " + getIndex()[0] + " " + getType()); return new EventApplicationResult(ExceptionType.ES_UPDATE_DOCUMENT.toString()); } Loading Loading @@ -101,19 +104,24 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac uuidTerm = auxTerm; } SearchRequestBuilder requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1), requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), requestBuilderUuid = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(uuidTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderId) .add(requestBuilderMmsi) .add(requestBuilderUuid); SearchSourceBuilder requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1), requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderUuid = new SearchSourceBuilder().query(uuidTerm).size(1); MultiSearchResponse sr = multiSearchRequestBuilder.get(); request .add(new SearchRequest().indices(getIndex()).source(requestBuilderId)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderUuid)); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading Loading @@ -176,23 +184,28 @@ public class VesselTrackingESRepository extends RWGeoDataESRepository<VesselTrac .must(QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId())) .mustNot(QueryBuilders.termQuery(UUID_PROPERTY, modelToIndex.getUuid())); SearchRequestBuilder requestBuilderMmsi = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(mmsiTerm).setSize(1), MultiSearchRequest request = new MultiSearchRequest(); SearchSourceBuilder requestBuilderMmsi = new SearchSourceBuilder().query(mmsiTerm).size(1), requestBuilderId = null; if (idTerm != null) { requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1); requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1); } MultiSearchRequestBuilder multiSearchRequestBuilder = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderMmsi); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderMmsi)); if (requestBuilderId != null) { multiSearchRequestBuilder.add(requestBuilderId); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderId)); } MultiSearchResponse sr = multiSearchRequestBuilder.get(); MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } // @formatter:on Loading
vessels-view/src/main/java/es/redmic/vesselsview/repository/vesseltype/VesselTypeESRepository.java +34 −15 Original line number Diff line number Diff line package es.redmic.vesselsview.repository.vesseltype; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.MultiSearchRequest; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.stereotype.Repository; import es.redmic.elasticsearchlib.data.repository.RWDataESRepository; import es.redmic.exception.common.ExceptionType; import es.redmic.exception.elasticsearch.ESQueryException; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.query.dto.SimpleQueryDTO; import es.redmic.vesselsview.model.vesseltype.VesselType; Loading @@ -23,7 +28,7 @@ public class VesselTypeESRepository extends RWDataESRepository<VesselType, Simpl implements IDataRepository<VesselType, SimpleQueryDTO> { private static String[] INDEX = { "platform-domains" }; private static String[] TYPE = { "vesseltype" }; private static String TYPE = "vesseltype"; // @formatter:off Loading @@ -42,18 +47,25 @@ public class VesselTypeESRepository extends RWDataESRepository<VesselType, Simpl QueryBuilder idTerm = QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId()), codeTerm = QueryBuilders.termQuery(CODE_PROPERTY, modelToIndex.getCode()); SearchRequestBuilder requestBuilderId = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(idTerm).setSize(1), requestBuilderCode = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(codeTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchResponse sr = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderId) .add(requestBuilderCode) .get(); SearchSourceBuilder requestBuilderId = new SearchSourceBuilder().query(idTerm).size(1), requestBuilderCode = new SearchSourceBuilder().query(codeTerm).size(1); request .add(new SearchRequest().indices(getIndex()).source(requestBuilderId)) .add(new SearchRequest().indices(getIndex()).source(requestBuilderCode)); // @formatter:on MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } Map<String, String> arguments = new HashMap<>(); Item[] responses = sr.getResponses(); Loading Loading @@ -81,15 +93,22 @@ public class VesselTypeESRepository extends RWDataESRepository<VesselType, Simpl .must(QueryBuilders.termQuery(CODE_PROPERTY, modelToIndex.getCode())) .mustNot(QueryBuilders.termQuery(ID_PROPERTY, modelToIndex.getId())); SearchRequestBuilder requestBuilderCode = ESProvider.getClient().prepareSearch(getIndex()).setTypes(getType()) .setQuery(codeTerm).setSize(1); MultiSearchRequest request = new MultiSearchRequest(); MultiSearchResponse sr = ESProvider.getClient().prepareMultiSearch() .add(requestBuilderCode) .get(); SearchSourceBuilder requestBuilderCode = new SearchSourceBuilder().query(codeTerm).size(1); request.add(new SearchRequest().indices(getIndex()).source(requestBuilderCode)); // @formatter:on MultiSearchResponse sr; try { sr = ESProvider.getClient().msearch(request, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); throw new ESQueryException(); } Map<String, String> arguments = new HashMap<>(); Item[] responses = sr.getResponses(); Loading
vessels-view/src/main/resources/application-dev.properties +2 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,8 @@ spring.kafka.properties.schema.registry.url=http://redmic.net:18081 #elastic elastic.addresses=localhost elastic.port=9301 elastic.port=9201 elastic.secured=false redmic.elasticsearch.check.mappings=true redmic.elasticsearch.create.mappings=true Loading
vessels-view/src/main/resources/application-pre.properties +2 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,8 @@ spring.kafka.properties.schema.registry.url=http://schema-registry:8081 #elastic elastic.addresses=es6-1 elastic.port=9300 elastic.port=9200 elastic.secured=true redmic.elasticsearch.check.mappings=true redmic.elasticsearch.create.mappings=true Loading