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,
knowledge_graph_inst: BaseGraphStorage,
):
all_related_edges = await asyncio.gather(
*[knowledge_graph_inst.get_node_edges(dp["entity_name"]) for dp in node_datas]
)
node_names = [dp["entity_name"] for dp in node_datas]
batch_edges_dict = await knowledge_graph_inst.get_nodes_edges_batch(node_names)
all_edges = []
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:
sorted_edge = tuple(sorted(e))
if sorted_edge not in seen: