mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-30 09:04:59 +08:00
Fix d2 description of paths map
This commit is contained in:
parent
173e37584c
commit
6806640ef0
@ -320,12 +320,13 @@ shape: class").unwrap();
|
|||||||
writeln!(file, "}}").unwrap();
|
writeln!(file, "}}").unwrap();
|
||||||
|
|
||||||
writeln!(file, "Shortest Paths {{").unwrap();
|
writeln!(file, "Shortest Paths {{").unwrap();
|
||||||
Self::paths_d2_description(graph, paths, file);
|
Self::paths_d2_description(graph, "", paths, file);
|
||||||
writeln!(file, "}}").unwrap();
|
writeln!(file, "}}").unwrap();
|
||||||
}
|
}
|
||||||
fn paths_d2_description(graph: &RankingRuleGraph<ProximityGraph>, paths: &PathsMap<u64>, file: &mut File) {
|
fn paths_d2_description(graph: &RankingRuleGraph<ProximityGraph>, paths_idx: &str, paths: &PathsMap<u64>, file: &mut File) {
|
||||||
|
|
||||||
for (edge_idx, rest) in paths.nodes.iter() {
|
for (edge_idx, rest) in paths.nodes.iter() {
|
||||||
let Edge { from_node, to_node, cost, .. } = graph.all_edges[*edge_idx as usize].as_ref().unwrap();
|
let Some(Edge { from_node, to_node, cost, .. }) = graph.all_edges[*edge_idx as usize].as_ref() else { continue };
|
||||||
let from_node = &graph.query_graph.nodes[*from_node as usize];
|
let from_node = &graph.query_graph.nodes[*from_node as usize];
|
||||||
let from_node_desc = match from_node {
|
let from_node_desc = match from_node {
|
||||||
QueryNode::Term(term) => match &term.value {
|
QueryNode::Term(term) => match &term.value {
|
||||||
@ -346,14 +347,15 @@ shape: class").unwrap();
|
|||||||
QueryNode::Start => "START".to_owned(),
|
QueryNode::Start => "START".to_owned(),
|
||||||
QueryNode::End => "END".to_owned(),
|
QueryNode::End => "END".to_owned(),
|
||||||
};
|
};
|
||||||
writeln!(file, "{edge_idx}: \"{from_node_desc}->{to_node_desc} [{cost}]\" {{
|
let edge_id = format!("{paths_idx}{edge_idx}");
|
||||||
|
writeln!(file, "{edge_id}: \"{from_node_desc}->{to_node_desc} [{cost}]\" {{
|
||||||
shape: class
|
shape: class
|
||||||
}}").unwrap();
|
}}").unwrap();
|
||||||
|
|
||||||
for (dest_edge_idx, _) in rest.nodes.iter() {
|
for (dest_edge_idx, _) in rest.nodes.iter() {
|
||||||
writeln!(file, "{edge_idx} -> {dest_edge_idx}").unwrap();
|
let dest_edge_id = format!("{paths_idx}{edge_idx}{dest_edge_idx}");
|
||||||
|
writeln!(file, "{edge_id} -> {dest_edge_id}").unwrap();
|
||||||
}
|
}
|
||||||
Self::paths_d2_description(graph, rest, file);
|
Self::paths_d2_description(graph, &format!("{paths_idx}{edge_idx}"), rest, file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -313,7 +313,8 @@ mod tests {
|
|||||||
let mut db_cache = DatabaseCache::default();
|
let mut db_cache = DatabaseCache::default();
|
||||||
|
|
||||||
let query_graph =
|
let query_graph =
|
||||||
make_query_graph(&index, &txn, &mut db_cache, "b b b b b b b b b b").unwrap();
|
make_query_graph(&index, &txn, &mut db_cache, "released from prison by the government")
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
// TODO: filters + maybe distinct attributes?
|
// TODO: filters + maybe distinct attributes?
|
||||||
let universe = get_start_universe(
|
let universe = get_start_universe(
|
||||||
|
Loading…
Reference in New Issue
Block a user