cmd_graph, cmd_list_keys: use query language internally
Dog-food the query engine for node-property filtering. cmd_link left unconverted — needs edge data in query results.
This commit is contained in:
parent
18face7063
commit
64d2b441f0
1 changed files with 10 additions and 13 deletions
23
src/main.rs
23
src/main.rs
|
|
@ -319,16 +319,13 @@ fn cmd_graph() -> Result<(), String> {
|
||||||
let store = capnp_store::Store::load()?;
|
let store = capnp_store::Store::load()?;
|
||||||
let g = store.build_graph();
|
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:");
|
println!("Top nodes by degree:");
|
||||||
for (key, deg) in degrees.iter().take(10) {
|
let results = query::execute_query(
|
||||||
let cc = g.clustering_coefficient(key);
|
&store, &g, "* | sort degree | limit 10")?;
|
||||||
println!(" {:40} deg={:3} cc={:.3}", key, deg, cc);
|
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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -1224,10 +1221,10 @@ fn cmd_spectral_suggest(args: &[String]) -> Result<(), String> {
|
||||||
|
|
||||||
fn cmd_list_keys() -> Result<(), String> {
|
fn cmd_list_keys() -> Result<(), String> {
|
||||||
let store = capnp_store::Store::load()?;
|
let store = capnp_store::Store::load()?;
|
||||||
let mut keys: Vec<_> = store.nodes.keys().collect();
|
let g = store.build_graph();
|
||||||
keys.sort();
|
let results = query::execute_query(&store, &g, "* | sort key asc")?;
|
||||||
for key in keys {
|
for r in &results {
|
||||||
println!("{}", key);
|
println!("{}", r.key);
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue