Ok thanks, Santo
Op vrijdag 4 april 2014 14:27:26 UTC+2 schreef Lvc@: > > The best would be using spatial indexes to achieve super performance. This > is something we're working for and will be available in a couple of weeks > as plugin. > > Lvc@ > > > > On 4 April 2014 14:24, sANTo L <[email protected] <javascript:>> wrote: > >> Hi Luca, >> >> that was fast :-) >> >> And yes, that seems to do the trick. Thanks! >> One additional question though: Isn't this, especially the last query >> (with select *), bad for performance ? >> >> regards, >> >> Santo >> >> Op vrijdag 4 april 2014 14:13:53 UTC+2 schreef Lvc@: >>> >>> Hi Santo, >>> try this: >>> >>> select $distance as distance from cities let $distance = distance(latitude, >>> longitude, 51.4503729, 4.4914635) where $distance < 20 >>> >>> And on Graph API: >>> >>> OSQLAsynchQuery<Vertex> asyncQuery = new OSQLAsynchQuery<Vertex>("select >>> *, $distance as distance from cities let $distance = distance(latitude, >>> longitude, 51.4503729, 4.4914635) where $distance < 20"); >>> >>> Lvc@ >>> >>> >>> On 4 April 2014 14:10, sANTo L <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> What is the correct / recommended way to use the result of distance() >>>> in a where clause ? >>>> >>>> I know I can do something like this: >>>> select distance(latitude, longitude, 51.4503729, 4.4914635) as distance >>>> from cities >>>> >>>> But I can't do this: >>>> select distance(latitude, longitude, 51.4503729, 4.4914635) as distance >>>> from cities where distance < 20 >>>> >>>> Of course I could do this: >>>> select distance(latitude, longitude, 51.4503729, 4.4914635) as distance >>>> from cities where distance(latitude, longitude, 51.4503729, 4.4914635) < 20 >>>> >>>> But I can't imagine that would be the most optimal/recommended way, is >>>> it ? >>>> >>>> >>>> Also, how can I send this distance value back together with the record >>>> itself when using the java OrientGraph API ? >>>> >>>> Normally I'm doing something like this: >>>> >>>> OSQLAsynchQuery<Vertex> asyncQuery = new >>>> OSQLAsynchQuery<Vertex>("select from cities where distance(latitude, >>>> longitude, 51.4503729, 4.4914635) < 20"); >>>> OCommandResultListener asyncListener = new >>>> OCommandResultListener() { >>>> int resultCount = 0; >>>> @Override >>>> public boolean result(Object iRecord) { >>>> resultCount++; >>>> Vertex doc = graphDb.getVertex(iRecord); >>>> System.out.println("new record received (" + >>>> resultCount + ")"); >>>> System.out.println(">> zipcode: " + >>>> doc.getProperty("zipcode")); >>>> return true; >>>> } >>>> >>>> @Override >>>> public void end() { >>>> System.out.println("All records received: " + >>>> resultCount); >>>> } >>>> }; >>>> >>>> But how do I add the distance to this ? >>>> I could probably use something like this for the query: "select @this, >>>> distance(latitude, longitude, 51.4503729, 4.4914635) as distance from >>>> cities" >>>> >>>> But what would be the result type in this case ? >>>> >>>> Or do I have to perform separate querries for this (which would cause a >>>> significant overhead) ? >>>> >>>> >>>> regards, >>>> >>>> Santo >>>> >>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "OrientDB" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
