Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'operatore graph-mark-components
trova tutti i componenti connessi di un grafico e contrassegna ogni nodo con un identificatore di componente.
Sintassi
G|
graph-mark-components
[kind
=
Kind] [with_component_id
=
ComponentId]
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
G | corda | ✔️ | Origine del grafo. |
Tipologia | corda | Tipo di componente connesso, weak (impostazione predefinita) o strong . Un componente debole è un set di nodi connessi da un percorso, ignorando la direzione dei bordi. Un componente forte è un set di nodi collegati in entrambe le direzioni, considerando le direzioni dei bordi. |
|
ComponentId | corda | Nome della proprietà che indica l'identificatore del componente. Il nome predefinito della proprietà è ComponentId . |
Valori restituiti
L'operatore graph-mark-components
restituisce un risultato del grafo , in cui ogni nodo ha un identificatore del componente nella proprietà ComponentId . L'identificatore è un indice consecutivo in base zero dei componenti. Ogni indice del componente viene scelto in modo arbitrario e potrebbe non essere coerente tra le esecuzioni.
Esempi
L'esempio seguente crea un grafico da un set di coppie figlio-padre e identifica i componenti connessi usando un family
identificatore.
let ChildOf = datatable(child:string, parent:string)
[
"Alice", "Bob",
"Carol", "Alice",
"Carol", "Dave",
"Greg", "Alice",
"Greg", "Dave",
"Howard", "Alice",
"Howard", "Dave",
"Eve", "Frank",
"Frank", "Mallory",
"Eve", "Kirk",
];
ChildOf
| make-graph child --> parent with_node_id=name
| graph-mark-components with_component_id = family
| graph-to-table nodes
Risultato
nome | famiglia |
---|---|
Alice | 0 |
Bob | 0 |
Carola | 0 |
Dave | 0 |
Greg | 0 |
Howard | 0 |
Vigilia | 1 |
Franco | 1 |
Mallory | 1 |
Chiesa | 1 |
L'esempio seguente usa l'identificatore del componente family
connesso e l'operatore graph-match
per identificare il predecessore maggiore di ogni famiglia in un set di dati padre figlio.
let ChildOf = datatable(child:string, parent:string)
[
"Alice", "Bob",
"Carol", "Alice",
"Carol", "Dave",
"Greg", "Alice",
"Greg", "Dave",
"Howard", "Alice",
"Howard", "Dave",
"Eve", "Frank",
"Frank", "Mallory",
"Eve", "Kirk",
];
ChildOf
| make-graph child --> parent with_node_id=name
| graph-mark-components with_component_id = family
| graph-match (descendant)-[childOf*1..5]->(ancestor)
project name = ancestor.name, lineage = map(childOf, child), family = ancestor.family
| summarize (generations, name) = arg_max(array_length(lineage),name) by family
Risultato
famiglia | Generazioni | nome |
---|---|---|
1 | 2 | Mallory |
0 | 2 | Bob |