Optimize query performance by batch query

This commit is contained in:
yangdx
2025-04-16 17:53:13 +08:00
parent 6b047fa71b
commit 2c7e8a5526

View File

@@ -1562,13 +1562,14 @@ async def _find_most_related_edges_from_entities(
query_param: QueryParam, query_param: QueryParam,
knowledge_graph_inst: BaseGraphStorage, knowledge_graph_inst: BaseGraphStorage,
): ):
all_related_edges = await asyncio.gather( node_names = [dp["entity_name"] for dp in node_datas]
*[knowledge_graph_inst.get_node_edges(dp["entity_name"]) for dp in node_datas] batch_edges_dict = await knowledge_graph_inst.get_nodes_edges_batch(node_names)
)
all_edges = [] all_edges = []
seen = set() seen = set()
for this_edges in all_related_edges: for node_name in node_names:
this_edges = batch_edges_dict.get(node_name, [])
for e in this_edges: for e in this_edges:
sorted_edge = tuple(sorted(e)) sorted_edge = tuple(sorted(e))
if sorted_edge not in seen: if sorted_edge not in seen: