Neo4j – Gruppenverschachtelungen Komplexizität

Die spannende Frage: wie löst man diese Verschachtelungen jetzt auf?

-> Welche Infos braucht man jetzt um taztsächlich auflösen zu können

 

Diese Abfrage ist wesentlich schneller als die zweite, in der noch die Domänen aufgelöst werden!

MATCH p=(n)<-[:rel_member*..]-(g:ADAccount) where g.type="group" and n.type="person" 
with length((p)) as Anzahl RETURN distinct Anzahl, count(Anzahl) order by Anzahl

 

 

 

 

Oder mit Domänenauflösung

MATCH p=(n)<-[:rel_member*1..]-(g:ADAccount) where g.type="group" 
and n.type="person" with length((p)) as Tiefe, n.domain as domain 
RETURN distinct Tiefe, count(Anzahl) as Anzahl_Verknuepfte_Gruppen,
domain order by domain,Anzahl

 

 

Tiefe count(Anzahl)
1 26856
2 86977
3 44731
4 65248
5 93257
6 65824
7 18508
8 1749

 

Aus <http://localhost:7474/browser/>

 

Mit mehr Details: -> die Gruppennamen noch mit aufgelistet

 

 

MATCH p=(u)<-[:rel_member*1..]-(g:ADAccount) where g.type="group" 
and u.type="person" with length((p)) as Tiefe, u.name as name RETURN 
distinct Tiefe, count(Tiefe) as Haeufigkeit, name order by Tiefe desc, Haeufigkeit desc

 

 

Variation mit Ausrichtung auf die User oder die Gruppen wenn man den n.name auf g.name umstellt

 

Tiefe Haefigkeit name
8 1749 g_xecm
7 1749 g_ecm_workspace_r
7 16759 g_xecm
6 44 applsql-esm-readall
6 583 g_ecm_interarea_fe_journal_r
6 583 g_ecm_interarea_fe_patent_r
6 583 g_ecm_interarea_fe_r
6 583 g_ecm_interarea_fe_testreport_r
6 583 g_ecm_interarea_makershandbook_r
6 63 g_ecm_interarea_scanarchive_mdo_r
6 63 g_ecm_interarea_scanarchive_qc_archive_r
6 63 g_ecm_interarea_scanarchive_qc_r

 

Jetzt noch mit konkreten Verschachtelungspfaden zur einzelnen Gruppe

MATCH p=(n)<-[:rel_member*1..]-(g:ADAccount) where g.name="g_xecm" and 
n.type="person" with g,n,p, extract(z in nodes(p) | z.name) as pfad 
RETURN n.name,pfad, length((p)) as Tiefe, g.name, g.description order 
by Tiefe, pfad, g.name

 

 

n.name pfad Tiefe g.name g.description
aistleitner gerhard (ais 4600) [aistleitner gerhard (ais 4600), g_ecm_a-4217 schlosserei_07, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_ecm_a-4 produktion_und_montage, g_ecm_all_groups, g_ecm_workspace_materials_drawing_r, g_ecm_workspace_r, g_xecm] 8 g_xecm Gruppe fuer lizenziert Open Text User
aistleitner gerhard (ais 4600) [aistleitner gerhard (ais 4600), g_ecm_a-4217 schlosserei_07, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_ecm_a-4 produktion_und_montage, g_ecm_all_groups, g_ecm_workspace_materials_freeslot_m, g_ecm_workspace_r, g_xecm] 8 g_xecm Gruppe fuer lizenziert Open Text User
aistleitner gerhard (ais 4600) [aistleitner gerhard (ais 4600), g_ecm_a-4217 schlosserei_07, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_ecm_a-4 produktion_und_montage, g_ecm_all_groups, g_ecm_workspace_materials_r, g_ecm_workspace_r, g_xecm] 8 g_xecm Gruppe fuer lizenziert Open Text User
aistleitner gerhard (ais 4600) [aistleitner gerhard (ais 4600), g_ecm_a-4217 schlosserei_07, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_ecm_job_projectgeneral_commercialadmin_r, g_ecm_all_groups, g_ecm_workspace_materials_drawing_r, g_ecm_workspace_r, g_xecm] 8 g_xecm Gruppe fuer lizenziert Open Text User
aistleitner gerhard (ais 4600) [aistleitner gerhard (ais 4600), g_ecm_a-4217 schlosserei_07, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_ecm_job_projectgeneral_commercialadmin_r, g_ecm_all_groups, g_ecm_workspace_materials_freeslot_m, g_ecm_workspace_r, g_xecm] 8 g_xecm Gruppe fuer lizenziert Open Text User

 

Aus <http://localhost:7474/browser/>

 

Nun noch die konkreten Verbindungen zw. Einem User und einer Gruppe.

MATCH p=(n)<-[:rel_member*1..]-(g:ADAccount) where g.name="g_xecm" and 
id(n)=4340 with g,n,p, extract(z in nodes(p) | z.name) as pfad RETURN 
n.name,pfad, length((p)) as Tiefe, g.name, g.description order by Tiefe, pfad, g.name

 

n.name pfad Tiefe g.name g.description
bogner christian (boch 4602) [bogner christian (boch 4602), g_ecm_a-4214 schlosserei_04, g_xecm] 2 g_xecm Gruppe fuer lizenziert Open Text User
bogner christian (boch 4602) [bogner christian (boch 4602), g_ecm_wf_timesheet_execute_technician, g_xecm] 2 g_xecm Gruppe fuer lizenziert Open Text User
bogner christian (boch 4602) [bogner christian (boch 4602), g_ecm_a-4214 schlosserei_04, g_ecm_a-421 mechanische_fertigung, g_xecm] 3 g_xecm Gruppe fuer lizenziert Open Text User
bogner christian (boch 4602) [bogner christian (boch 4602), g_ecm_a-4214 schlosserei_04, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_xecm] 4 g_xecm Gruppe fuer lizenziert Open Text User
bogner christian (boch 4602) [bogner christian (boch 4602), g_ecm_a-4214 schlosserei_04, g_ecm_a-421 mechanische_fertigung, g_ecm_a-42 fertigung, g_ecm_a-4 produktion_und_montage, g_xecm] 5 g_xecm Gruppe fuer lizenziert Open Text User

 

 

 

Translate »