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
