Loading src/main/java/es/redmic/es/geodata/common/repository/RGeoDataESRepository.java +6 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortBuilder; import org.locationtech.jts.geom.Geometry; import org.springframework.beans.factory.annotation.Autowired; Loading Loading @@ -137,6 +138,11 @@ public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>> extends getSourceType(GeoSearchWrapper.class)); } protected GeoSearchWrapper<?, ?> findBy(QueryBuilder queryBuilder, SortBuilder<?> sort, List<String> returnFields) { return searchResponseToWrapper(searchRequest(queryBuilder, sort, returnFields), getSourceType(GeoSearchWrapper.class)); } public List<String> suggest(String parentId, GeoDataQueryDTO queryDTO) { QueryBuilder serviceQuery = GeoDataQueryUtils.getHierarchicalQuery(queryDTO, parentId); Loading src/main/java/es/redmic/es/geodata/common/repository/SpeciesGeoESRepository.java +9 −3 Original line number Diff line number Diff line package es.redmic.es.geodata.common.repository; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; /*- Loading Loading @@ -30,6 +30,8 @@ import java.util.Map; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.search.sort.SortBuilders; import org.locationtech.jts.geom.Geometry; import org.springframework.stereotype.Repository; Loading Loading @@ -60,7 +62,10 @@ public class SpeciesGeoESRepository extends GeoPresenceESRepository<GeoPointData List<String> returnFields = new ArrayList<>(); returnFields.add("activityId"); GeoSearchWrapper<Properties, Geometry> result = (GeoSearchWrapper<Properties, Geometry>) findBy(QueryBuilders.boolQuery().filter(filterBuilder), returnFields); (GeoSearchWrapper<Properties, Geometry>) findBy( QueryBuilders.boolQuery().filter(filterBuilder), SortBuilders.fieldSort("properties.date").order(SortOrder.DESC), returnFields); if (result == null || result.getTotal() == 0) return activities; Loading @@ -71,7 +76,8 @@ public class SpeciesGeoESRepository extends GeoPresenceESRepository<GeoPointData activities.add(item.get_source().getProperties().getActivityId()); } return activities; // ELimina duplicados return new ArrayList<>(new LinkedHashSet<>(activities)); } /** Loading Loading
src/main/java/es/redmic/es/geodata/common/repository/RGeoDataESRepository.java +6 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortBuilder; import org.locationtech.jts.geom.Geometry; import org.springframework.beans.factory.annotation.Autowired; Loading Loading @@ -137,6 +138,11 @@ public abstract class RGeoDataESRepository<TModel extends Feature<?, ?>> extends getSourceType(GeoSearchWrapper.class)); } protected GeoSearchWrapper<?, ?> findBy(QueryBuilder queryBuilder, SortBuilder<?> sort, List<String> returnFields) { return searchResponseToWrapper(searchRequest(queryBuilder, sort, returnFields), getSourceType(GeoSearchWrapper.class)); } public List<String> suggest(String parentId, GeoDataQueryDTO queryDTO) { QueryBuilder serviceQuery = GeoDataQueryUtils.getHierarchicalQuery(queryDTO, parentId); Loading
src/main/java/es/redmic/es/geodata/common/repository/SpeciesGeoESRepository.java +9 −3 Original line number Diff line number Diff line package es.redmic.es.geodata.common.repository; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; /*- Loading Loading @@ -30,6 +30,8 @@ import java.util.Map; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.search.sort.SortBuilders; import org.locationtech.jts.geom.Geometry; import org.springframework.stereotype.Repository; Loading Loading @@ -60,7 +62,10 @@ public class SpeciesGeoESRepository extends GeoPresenceESRepository<GeoPointData List<String> returnFields = new ArrayList<>(); returnFields.add("activityId"); GeoSearchWrapper<Properties, Geometry> result = (GeoSearchWrapper<Properties, Geometry>) findBy(QueryBuilders.boolQuery().filter(filterBuilder), returnFields); (GeoSearchWrapper<Properties, Geometry>) findBy( QueryBuilders.boolQuery().filter(filterBuilder), SortBuilders.fieldSort("properties.date").order(SortOrder.DESC), returnFields); if (result == null || result.getTotal() == 0) return activities; Loading @@ -71,7 +76,8 @@ public class SpeciesGeoESRepository extends GeoPresenceESRepository<GeoPointData activities.add(item.get_source().getProperties().getActivityId()); } return activities; // ELimina duplicados return new ArrayList<>(new LinkedHashSet<>(activities)); } /** Loading