diff --git a/src/main.rs b/src/main.rs index bcbbef0..96f5de0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -319,16 +319,13 @@ fn cmd_graph() -> Result<(), String> { let store = capnp_store::Store::load()?; let g = store.build_graph(); - // Show top-10 highest degree nodes - let mut degrees: Vec<_> = g.nodes().iter() - .map(|k| (k.clone(), g.degree(k))) - .collect(); - degrees.sort_by(|a, b| b.1.cmp(&a.1)); - println!("Top nodes by degree:"); - for (key, deg) in degrees.iter().take(10) { - let cc = g.clustering_coefficient(key); - println!(" {:40} deg={:3} cc={:.3}", key, deg, cc); + let results = query::execute_query( + &store, &g, "* | sort degree | limit 10")?; + for r in &results { + let deg = g.degree(&r.key); + let cc = g.clustering_coefficient(&r.key); + println!(" {:40} deg={:3} cc={:.3}", r.key, deg, cc); } Ok(()) } @@ -1224,10 +1221,10 @@ fn cmd_spectral_suggest(args: &[String]) -> Result<(), String> { fn cmd_list_keys() -> Result<(), String> { let store = capnp_store::Store::load()?; - let mut keys: Vec<_> = store.nodes.keys().collect(); - keys.sort(); - for key in keys { - println!("{}", key); + let g = store.build_graph(); + let results = query::execute_query(&store, &g, "* | sort key asc")?; + for r in &results { + println!("{}", r.key); } Ok(()) }