2015-10-17 2 views
0

J'évalue ArangoDb pour mon application. J'ai un modèle de données comme un système de fichiers, avec une collection de documents Items et une collection de bords ItemsParents avec des relations parent-enfant à propos d'Items.comment utiliser les index dans la recherche graphique arangodb?

Maintenant, je voudrais trouver tous les Childs d'un élément spécifique, avec un attribut spécifique

Ex: Toutes Childs A avec la propriété Properties.Age.Value = 20

donc je créé un index de hachage sur Items.Properties.Age.Value, et la conception de cette requête AQL:

FOR item 
    IN GRAPH_NEIGHBORS('ItemsGraph', 'Items/A', 
     { direction : 'outbound', 
     includeData: true, 
     neighborExamples : { 'Properties.Age.Value': 20 } 
     }) 
RETURN { Id: item._key, Name: item.Name } 

le travail de recherche ci-dessus bien, mais pas d'index sont utilisés, il effectue une analyse complète de collection Items pour le test Properties.Age.Value filtre.

Comment concevoir la requête afin qu'elle fonctionne efficacement en utilisant l'index et éviter un balayage de collection?

Merci

Répondre

3

Actuellement ArangoDB ne peuvent utiliser les indices de pointe dans les opérations de graphique;

Sans utiliser GRAPH_NEIGHBOURS peut proposer d'utiliser l'index, mais vous devrez alors filtrer vous-même pour les voisins.

Les index centrés sur les sommets, qui offriraient ce type de prise en charge d'index, peuvent apparaître dans l'une des deux prochaines versions d'ArangoDB.

[edit] En attendant, cela est possible avec les nouvelles versions d'ArangoDB.

GRAPH_NEIGHBOURS a été intégré dans the traversal engine. Vous devez maintenant créer un index combiné sur Age et _from. Vous devez utiliser pour inspecter l'utilisation des index.

+0

Il est actuellement prévu pour la version 3.0 de janvier 2016. –