diff --git a/serepo-data-restinterface/src/main/java/ch/hsr/isf/serepo/data/restinterface/search/SearchResult.java b/serepo-data-restinterface/src/main/java/ch/hsr/isf/serepo/data/restinterface/search/SearchResult.java index 578e80b..cfc0210 100644 --- a/serepo-data-restinterface/src/main/java/ch/hsr/isf/serepo/data/restinterface/search/SearchResult.java +++ b/serepo-data-restinterface/src/main/java/ch/hsr/isf/serepo/data/restinterface/search/SearchResult.java @@ -2,35 +2,43 @@ public class SearchResult { - private String repository; - private String commitId; - private String seItemUri; - - public SearchResult() { - } - - public String getRepository() { - return repository; - } - - public void setRepository(String repository) { - this.repository = repository; - } - - public String getCommitId() { - return commitId; - } - - public void setCommitId(String commitId) { - this.commitId = commitId; - } - - public String getSeItemUri() { - return seItemUri; - } - - public void setSeItemUri(String seItemUri) { - this.seItemUri = seItemUri; - } + private String repository; + private String commitId; + private String seItemUri; + private String seItemName; + + public SearchResult() {} + + public String getRepository() { + return repository; + } + + public void setRepository(String repository) { + this.repository = repository; + } + + public String getCommitId() { + return commitId; + } + + public void setCommitId(String commitId) { + this.commitId = commitId; + } + + public String getSeItemUri() { + return seItemUri; + } + + public void setSeItemUri(String seItemUri) { + this.seItemUri = seItemUri; + } + + public String getSeItemName() { + return seItemName; + } + + public void setSeItemName(String seItemName) { + this.seItemName = seItemName; + } } diff --git a/serepo-rest/src/main/java/ch/hsr/isf/serepo/rest/resources/search/SearchResource.java b/serepo-rest/src/main/java/ch/hsr/isf/serepo/rest/resources/search/SearchResource.java index 45f20a1..12c17ec 100644 --- a/serepo-rest/src/main/java/ch/hsr/isf/serepo/rest/resources/search/SearchResource.java +++ b/serepo-rest/src/main/java/ch/hsr/isf/serepo/rest/resources/search/SearchResource.java @@ -2,7 +2,6 @@ import java.net.URI; import java.net.URISyntaxException; -import java.util.ArrayList; import java.util.List; import javax.ws.rs.DELETE; @@ -21,10 +20,8 @@ import ch.hsr.isf.serepo.commons.Uri; import ch.hsr.isf.serepo.data.restinterface.search.SearchContainer; import ch.hsr.isf.serepo.rest.resources.Resource; -import ch.hsr.isf.serepo.search.SearchConfig; import ch.hsr.isf.serepo.search.index.DeleteException; import ch.hsr.isf.serepo.search.index.DocumentDeleter; -import ch.hsr.isf.serepo.search.request.FilterQueries; import ch.hsr.isf.serepo.search.request.SearchException; import ch.hsr.isf.serepo.search.request.SearchResult; import ch.hsr.isf.serepo.search.request.Searcher; @@ -49,32 +46,13 @@ public class SearchResource extends Resource { , @ApiResponse(code = 500, message = "If the query cannot be understood or if something is wrong with the underlying search engine.") }) @GET - public Response get(@QueryParam("repository") String repository, - @QueryParam("commitId") String commitId, - @ApiParam(value = "To specify the documenttype (metadata, content)", allowableValues = "metadata, content", - required = false) @QueryParam("in") String in, - @ApiParam(value = "Query", required = true) @QueryParam("q") String q) + public Response get(@ApiParam(value = "Query", required = true) @QueryParam("q") String q) throws URISyntaxException { Response response = null; Searcher searchRequest = new Searcher(getApp().getSolrUrl()); - List filterQueries = new ArrayList<>(); - - if (repository != null) { - filterQueries.add( - FilterQueries.create(SearchConfig.Fields.REPOSITORY, emptyToWildcard(repository))); - } - if (commitId != null) { - filterQueries.add( - FilterQueries.create(SearchConfig.Fields.COMMIT_ID, emptyToWildcard(commitId))); - } - if (in != null) { - filterQueries.add( - FilterQueries.create(SearchConfig.Fields.SEITEM_DOCUMENTTYPE, emptyToWildcard(in.toUpperCase()))); - } - if (q == null) { return Response.status(Status.BAD_REQUEST) .entity("q (Query) parameter is missing!") @@ -83,17 +61,17 @@ public Response get(@QueryParam("repository") String repository, } try { - List searchResults = - searchRequest.search(q, filterQueries.toArray(new String[filterQueries.size()])); + List searchResults = searchRequest.search(q); SearchContainer searchContainer = new SearchContainer(); for (SearchResult searchResult : searchResults) { URI uri = Uri.of(getUriInfo().getBaseUri(), "repos", searchResult.getRepository(), - "commits", searchResult.getCommitId(), "seitems", searchResult.getId()); + "commits", searchResult.getCommitid(), "seitems", searchResult.getSeItemId()); ch.hsr.isf.serepo.data.restinterface.search.SearchResult searchResultApi = new ch.hsr.isf.serepo.data.restinterface.search.SearchResult(); searchResultApi.setRepository(searchResult.getRepository()); - searchResultApi.setCommitId(searchResult.getCommitId()); + searchResultApi.setCommitId(searchResult.getCommitid()); searchResultApi.setSeItemUri(uri.toString()); + searchResultApi.setSeItemName(searchResult.getSeItemName()); searchContainer.getSearchResult() .add(searchResultApi); } @@ -151,11 +129,4 @@ public Response delete(@ApiParam(required = true) @QueryParam("repository") Stri } - private String emptyToWildcard(String value) { - if (value.isEmpty()) { - return "*"; - } - return value; - } - }