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>");