diff --git a/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrDocParser.java b/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrDocParser.java index 8b55a4d5..f4caa102 100644 --- a/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrDocParser.java +++ b/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrDocParser.java @@ -1,5 +1,6 @@ package it.smartcommunitylabdhub.core.components.solr; +import java.util.Date; import java.util.List; import org.apache.solr.common.SolrDocument; @@ -17,8 +18,8 @@ public static ItemResult parse(SolrDocument doc) { item.getMetadata().put("description", (String) doc.getFieldValue("metadata.description")); item.getMetadata().put("project", (String) doc.getFieldValue("metadata.project")); item.getMetadata().put("version", (String) doc.getFieldValue("metadata.version")); - item.getMetadata().put("created", (String) doc.getFieldValue("metadata.created")); - item.getMetadata().put("updated", (String) doc.getFieldValue("metadata.updated")); + item.getMetadata().put("created", (Date) doc.getFieldValue("metadata.created")); + item.getMetadata().put("updated", (Date) doc.getFieldValue("metadata.updated")); item.getMetadata().put("labels", (List) doc.getFieldValue("metadata.labels")); return item; } diff --git a/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrIndexManager.java b/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrIndexManager.java index 897b46c7..6893bc15 100644 --- a/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrIndexManager.java +++ b/application/src/main/java/it/smartcommunitylabdhub/core/components/solr/SolrIndexManager.java @@ -155,6 +155,12 @@ private QueryResponse prepareQuery( MultiMapSolrParams.addParam("start", String.valueOf(pageRequest.getOffset()), queryParamMap); MultiMapSolrParams.addParam("rows", String.valueOf(pageRequest.getPageSize()), queryParamMap); + if(pageRequest.getSort().isSorted()) { + pageRequest.getSort().forEach(order -> { + MultiMapSolrParams.addParam("sort", + order.getProperty() + " " + order.getDirection().toString(), queryParamMap); + }); + } return solrClient.query(solrCollection, new MultiMapSolrParams(queryParamMap)); } diff --git a/application/src/main/java/it/smartcommunitylabdhub/core/controllers/v1/base/SolrController.java b/application/src/main/java/it/smartcommunitylabdhub/core/controllers/v1/base/SolrController.java index 08b2a55b..48fe3472 100644 --- a/application/src/main/java/it/smartcommunitylabdhub/core/controllers/v1/base/SolrController.java +++ b/application/src/main/java/it/smartcommunitylabdhub/core/controllers/v1/base/SolrController.java @@ -17,6 +17,8 @@ import it.smartcommunitylabdhub.core.repositories.ArtifactRepository; import it.smartcommunitylabdhub.core.repositories.DataItemRepository; import it.smartcommunitylabdhub.core.repositories.FunctionRepository; +import lombok.extern.slf4j.Slf4j; + import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +36,7 @@ @RestController @RequestMapping("/solr") @ApiVersion("v1") +@Slf4j @PreAuthorize("hasAuthority('ROLE_ADMIN')") public class SolrController { @@ -161,6 +164,7 @@ public ResponseEntity> searchGroup( SolrPage page = solrComponent.groupSearch(q, fq, pageRequest); return ResponseEntity.ok(page); } catch (Exception e) { + SolrController.log.error(String.format("searchGroup:", e.getMessage())); return ResponseEntity.ok(null); } } @@ -176,6 +180,7 @@ public ResponseEntity> search( SolrPage page = solrComponent.itemSearch(q, fq, pageRequest); return ResponseEntity.ok(page); } catch (Exception e) { + SolrController.log.error(String.format("search:", e.getMessage())); return ResponseEntity.ok(null); } }