I think you can do all that using the search API: 
http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http://pubs/5.0doc/apidoc/searchapi.xml&category=Search&function=search:search
 - look at the configuration examples, especially "<geo-*>".

>From Java you could invoke it via a simple wrapper in XQuery, something like 
>this. The most complex part will be configuring the options. Those will be 
>specific to your application and XML.

xquery version "1.0-ml";

import module namespace search = "http://marklogic.com/appservices/search";
    at "/MarkLogic/appservices/search/search.xqy";

(: external variables are set by the Java XCC Request setNewStringVariable et. 
al. :)
declare variable $QUERY as xs:string external;
declare variable $PAGE-START as xs:integer external;
declare variable $PAGE-SIZE as xs:integer external;

declare variable $OPTIONS :=
  <options xmlns="http://marklogic.com/appservices/search";>
  {
    (: add extra configuration - geospatial, etc. :)
  }
  </options>
;

search:search($QUERY, $OPTIONS, $PAGE-START, $PAGE-SIZE)

If you want to learn more about how you might implement the search API 
functionality, you might have a look at 
http://developer.marklogic.com/learn/2006-09-paginated-search - but these days 
most applications use the higher-level search API.

-- Mike

On 9 Apr 2012, at 08:47 , Tom Hubschman wrote:

> Hey All,
> 
>    Not sure if I missed a reply to this one. Didn't see it, but for some 
> reason I don't get direct replies with this engine. I looked for it in list 
> setting but couldn't find it.
> 
> Thanks,
> 
> Tom
> 
> On Tue, Apr 3, 2012 at 4:12 PM, Tom Hubschman 
> <[email protected]> wrote:
> Hi Justin,
> 
>     Thanks for the quick reply. The existing query I have is definitely a 
> good start but I imagine I could gain greater performance by having more of 
> the logic executed in the XQuery "stored procedure." (I am using XCC with 
> Java).
> 
>     Specifically what I need in my geo-query is the following:
>       • An AND query between some key words and a location. (Key Words and 
> Location are the inputs)
>       • The results (The Output) should be ranked by both the and query and 
> the location 
>               • Results where the key words appear more often should be 
> returned higher up.
>               • Results where the location is closer should appear higher up
>       • The results to be paginated. 
>               • The ability to specify how many results to return with one 
> call.
>               • The ability to specify what "page" of results to return,
>               • The confidence that the pagination is consistent (result 
> position is constant if there are no edits/additions/deletions).
>     Regarding performance I just need the best that ML/XQuery can do. Some of 
> the above I am currently doing in Java which I know is impacting the 
> performance (I want to do all sorting/paging/ranking in XQuery/MarkLogic). 
> 
> Thanks again
> 
> Tom
> 
> 
> 
> -- 
> Thomas Hubschman
> Director, Engineering
> [email protected]
> Mobile: (415) 612-0359
> www.warriorgateway.org
> 
> 
> 
> -- 
> Thomas Hubschman
> Director, Engineering
> [email protected]
> Mobile: (415) 612-0359
> www.warriorgateway.org
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to