2016-08-24 8 views
0

Я использую titan 1.0 db с предикатом GEO на основе внешнего индекса (elasticsearch): , как я знаю, есть 3 возможности: DISJOINT, WITHIN, INTERSECT.Titan db 1.0: Tinkerpop3 Получение индекса ПРЕДУПРЕЖДЕНИЕ после запроса гео-предиката

когда выполнение ВНУТРИ/geoWithin не появляется ПРЕДУПРЕЖДЕНИЕ

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

но когда вызов GEO Disjoint:

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

Я получаю индекс ПРЕДУПРЕЖДЕНИЕ

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

Я пытаюсь чтобы понять, каковы различия между geoWithin против geoDisjoint в отношении проблем с индексами.

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

tm.buildIndex(indexName, TitanVertex.class).addKey(storyLocation).buildMixedIndex("search") 

ответ

2

Насколько я знаю, geoWithin единственный предикат, который может использовать индекс, все остальные полное сканирование. Я думаю, это техническое ограничение, продиктованное поисковым бэкэндом.

 Смежные вопросы

  • Нет связанных вопросов^_^