0

I'm using titan 1.0 db with GEO Predicate based on external index (elasticsearch): as I know there are 3 possibilities: DISJOINT ,WITHIN,INTERSECT.

when I executing WITHIN/geoWithin no WARNING appears

 g.V().has(STORY_LOCATION, geoWithin(circle));

but when call GEO DISJOINT:

 g.V().has(STORY_LOCATION, geoDisjoint(circle));

I'm getting Index WARNING

WARNING: Query requires iterating over all vertices [(storyLocation disjoint circle[30.0,30.0]:5000.0)]. For better performance, use indexes

I'm trying to understand what are the differences between geoWithin vs geoDisjoint regarding indexes issues..

P.S:
index configuration:
 PropertyKey storyLocation = createPropertyKey(tm, STORY_LOCATION, Geoshape.class, Cardinality.SINGLE);

tm.buildIndex(indexName, TitanVertex.class).addKey(storyLocation).buildMixedIndex("search")
VitalyT
  • 1,671
  • 3
  • 21
  • 49

1 Answers1

2

As far as I know, geoWithin is the only predicate that can make use of an index, all others are full scans. I guess this is a technical limitation dictated by the search backend.

Daniel Kuppitz
  • 10,846
  • 1
  • 25
  • 34