Mercurial > hg > eSciDocMPIWGServicesRestlet
diff src/de/mpiwg/itgroup/escidoc/MPIWGServices/Restlet/services/search/SimpleSearch.java @ 4:938e45fabd7c default tip
version f?r escidoc produktionsversion
author | dwinter |
---|---|
date | Wed, 25 Jul 2012 12:36:25 +0200 |
parents | ffeb8be0bded |
children |
line wrap: on
line diff
--- a/src/de/mpiwg/itgroup/escidoc/MPIWGServices/Restlet/services/search/SimpleSearch.java Fri Apr 20 15:55:51 2012 +0200 +++ b/src/de/mpiwg/itgroup/escidoc/MPIWGServices/Restlet/services/search/SimpleSearch.java Wed Jul 25 12:36:25 2012 +0200 @@ -43,11 +43,14 @@ public class SimpleSearch extends ServerResource{ + private String eScidocServer; private String eScidocPort; private Logger logger= Logger.getRootLogger(); private String eScidocUser; private String eScidocUserPW; + + private String SEARCH_CMM="escidoc:131281"; //TODO: make this configurable, also a list of CMM should be possible public SimpleSearch() throws IOException{ InputStream is = getClass().getResourceAsStream("/de/mpiwg/itgroup/escidoc/MPIWGServices/Restlet/config/eScidocServer.config"); @@ -113,20 +116,24 @@ String queryString =""; Boolean isSearch=false; if (searchAll!=null && !searchAll.equals("")){ - queryString="escidoc.metadata="+searchAll; + queryString="metadata="+searchAll; isSearch=true; } else if (searchTitle!=null && !searchTitle.equals("")){ - queryString="escidoc.any-title="+searchTitle; + queryString="any-title="+searchTitle; + queryString+=" or meta.archimedes.title="+searchTitle; + queryString+=" or meta.bib.title="+searchTitle; isSearch=true; } else if (searchAuthor!=null && !searchAuthor.equals("")){ - queryString="escidoc.creator="+searchAuthor; + queryString="dc-md.creator="+searchAuthor; + queryString+=" or meta.archimedes.author="+searchAuthor; + queryString+=" or meta.bib.author="+searchAuthor; isSearch=true; } if (!isSearch) return null; String query; try { - query = "/srw/search/escidoc_all?maximumRecords=1000&query="+URLEncoder.encode(queryString,"utf-8"); + query = "/srw/search/escidoc_all?maximumRecords=1000&query="+URLEncoder.encode("content-model.objid="+SEARCH_CMM+" and "+ queryString,"utf-8"); } catch (UnsupportedEncodingException e) { logger.error("do Search, cannot encode:"+queryString); setStatus(Status.SERVER_ERROR_INTERNAL); @@ -179,8 +186,14 @@ //logger.debug(printXML(doc)); Document docresult = out.getDocument(); + + + return new StringRepresentation(printXML(docresult),MediaType.TEXT_HTML); + + + } catch (Exception e) { logger.trace(e); return new StringRepresentation("<error>error</error>");