Mercurial > hg > ZopePubmanConnector
comparison zopePubmanConnector.py @ 5:245294b18a1d
search modified
author | dwinter |
---|---|
date | Tue, 30 Apr 2013 20:32:50 +0200 |
parents | f845502cf73a |
children | 49abb91d6c6a |
comparison
equal
deleted
inserted
replaced
4:f845502cf73a | 5:245294b18a1d |
---|---|
101 | 101 |
102 | 102 |
103 return ret | 103 return ret |
104 | 104 |
105 | 105 |
106 def search(self,values,exact=False): | 106 def search(self,values={},exact=False,limit=None,contexts=None): |
107 | 107 |
108 """search pubman | 108 """search pubman |
109 @values map mit field->value | 109 @values map mit field->value |
110 @return map mit escidocId -> XML-formatted snippeds | 110 @return map mit escidocId -> XML-formatted snippeds |
111 """ | 111 """ |
116 | 116 |
117 | 117 |
118 cn = self.connectorString+"cqlQuery=%s&" | 118 cn = self.connectorString+"cqlQuery=%s&" |
119 cn +="exportFormat=APA&outputFormat=snippet&language=all&sortKeys=escidoc.any-dates&sortOrder=descending" | 119 cn +="exportFormat=APA&outputFormat=snippet&language=all&sortKeys=escidoc.any-dates&sortOrder=descending" |
120 | 120 |
121 if limit: | |
122 cn+="&maximumRecords=%s"%limit | |
123 | |
124 | |
121 | 125 |
122 | 126 |
123 querys = [] | 127 querys = [] |
124 for field in values.keys(): | 128 for field in values.keys(): |
125 | 129 |
139 | 143 |
140 | 144 |
141 querys.append("%s=%%22%s%%22"%(searchField,value)) | 145 querys.append("%s=%%22%s%%22"%(searchField,value)) |
142 | 146 |
143 | 147 |
144 query=" AND ".join(querys) | 148 query="+AND+".join(querys) |
149 | |
150 | |
151 if contexts: # einscbraenken auf contexte | |
152 | |
153 if isinstance(contexts, str): | |
154 contexts=[contexts] | |
155 | |
156 ctxquerys=[] | |
157 for context in contexts: | |
158 ctxquerys.append("escidoc.context.objid=%%22%s%%22"%(context)) | |
159 | |
160 ctxquery="+OR+".join(ctxquerys) | |
161 | |
162 if query!="": | |
163 query=query+"AND (%s)"%ctxquery | |
164 else: | |
165 query="(%s)"%ctxquery | |
166 | |
145 h = httplib2.Http() | 167 h = httplib2.Http() |
146 | 168 |
147 logging.debug(cn%query) | 169 logging.debug(cn%query) |
148 resp, content = h.request(cn%query) | 170 resp, content = h.request(cn%query) |
149 | 171 |