- Timestamp:
- 03/26/10 14:23:44 (14 years ago)
- Location:
- MDService/trunk/xquery
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
MDService/trunk/xquery/cmd-model.xql
r287 r292 29 29 cmd-model:query-model($cmd-index-path, $collection, $format, $max-depth) 30 30 else if ($operation eq $cmd-model:searchRetrieve) then 31 let $cql-query := request:get-parameter("query", "MDGroup/Actors/Actor") 32 return cmd-model:search-retrieve($cql-query) 31 let $cql-query := request:get-parameter("query", "MDGroup/Actors/Actor"), 32 $start-item := request:get-parameter("istart", 1), 33 $end-item := request:get-parameter("iend", 50) 34 35 return cmd-model:search-retrieve($cql-query, $collection, $format, $start-item, $end-item) 33 36 else 34 37 <error>Unknown operation</error> -
MDService/trunk/xquery/cmd-model.xqm
r286 r292 198 198 Seraliseringsformat. 199 199 :) 200 declare function cmd-model:serialise-as($item as node() , $format as xs:string) as item()? {200 declare function cmd-model:serialise-as($item as node()?, $format as xs:string) as item()? { 201 201 if ($format eq $cmd-model:responseFormatJSon) then 202 202 let $option := util:declare-option("exist:serialize", "method=text media-type=application/json") … … 228 228 229 229 (:~ 230 API function queryModel. 231 :) 232 declare function cmd-model:search-retrieve($cql-query as xs:string, $collection as xs:string+, $format as xs:string, $max-depth as xs:integer) as item() { 233 cmd-model:serialise-as(<error>Unimplemented</error>, $format) 234 235 }; 236 230 API function searchRetrieve. 231 :) 232 declare function cmd-model:search-retrieve($cql-query as xs:string, $collection as xs:string+, $format as xs:string, $start-item as xs:integer, $end-item as xs:integer) as item()* { 233 let $results := util:eval(fn:concat("collection('", xdb:decode($collection), "')", xdb:decode($cql-query), "/ancestor::CMD")), 234 $result-count := fn:count($results), 235 $result-seq := subsequence($results, $start-item, $end-item), 236 $seq-count := fn:count($result-seq), 237 $result-fragment := 238 <searchRetrieveResponse> 239 <numberOfRecords>{$result-count}</numberOfRecords> 240 <echoedSearchRetrieveRequest>{$cql-query, $collection, $start-item, $end-item}</echoedSearchRetrieveRequest> 241 <diagnostics>{$seq-count}</diagnostics> 242 <records> 243 {$result-seq} 244 </records> 245 </searchRetrieveResponse> 246 247 return 248 cmd-model:serialise-as($result-fragment, $format) 249 250 }; 251 (: 252 {cmdComponent} //{cmdComponent} Actor //Actor 253 {cmdPath}. //{cmdPath}/{cmdComponent} Actor.Contact.Phone //Actor/Contact/Phone 254 {cmdIndex} {rel} {term} //{cmdIndex}[\. {rel} '{term}'] Actors.Actor.Sex=f //Actors/Actor/Sex[.='f'] 255 {cmdIndex} any {term} //{cmdIndex}[contains(. '{term}')] Organisation.Name any University //Organisation/Name[contains(.,'University')] 256 and, or, and not ?! Organisation.Name any University and Actor.gender=m ?! 257 258 //MDGroup[Actors/Actor/Role[.='sponsor'] and Actors/Actor/Name[contains(.,'a')]] 259 //Title[starts-with(.,'a')] 260 //Title[starts-with(.,'A')] 261 //Title[contains(.,'analysis')] 262 http://demo.spraakdata.gu.se/clarin/cmd/model/stats?operation=searchRetrieve&query=//Title[contains(.,'analysis')]&collection= 263 264 <record> 265 <recordSchema>info:srw/schema/1/dc-v1.1</recordSchema> 266 <recordPacking>xml</recordPacking> 267 <recordData> 268 <srw_dc:dc xmlns:srw_dc="info:srw/schema/1/dc-v1.1"> 269 <dc:title>This is a Sample Record</dc:title> 270 </srw_dc:dc> 271 </recordData> 272 <recordPosition>1</recordPosition> 273 <extraRecordData> 274 <rel:score xmlns:rel="info:srw/extensions/2/rel-1.0"> 275 0.965 276 </rel:rank> 277 </extraRecordData> 278 </record> 279 280 <searchRetrieveResponse> 281 <numberOfRecords>integer</numberOfRecords> 282 <echoedSearchRetrieveRequest>query itself (together with the context-collection) </echoedSearchRetrieveRequest> 283 <diagnostics>if necessary</diagnostics> 284 <records> 285 .... 286 </records> 287 </searchRetrieveResponse> 288 289 :)
Note: See TracChangeset
for help on using the changeset viewer.