yangdx commited on
Commit
f104cc7
·
1 Parent(s): d269ec2

Optimize query performance by batch query

Browse files
Files changed (1) hide show
  1. lightrag/operate.py +5 -4
lightrag/operate.py CHANGED
@@ -1562,13 +1562,14 @@ async def _find_most_related_edges_from_entities(
1562
  query_param: QueryParam,
1563
  knowledge_graph_inst: BaseGraphStorage,
1564
  ):
1565
- all_related_edges = await asyncio.gather(
1566
- *[knowledge_graph_inst.get_node_edges(dp["entity_name"]) for dp in node_datas]
1567
- )
1568
  all_edges = []
1569
  seen = set()
1570
 
1571
- for this_edges in all_related_edges:
 
1572
  for e in this_edges:
1573
  sorted_edge = tuple(sorted(e))
1574
  if sorted_edge not in seen:
 
1562
  query_param: QueryParam,
1563
  knowledge_graph_inst: BaseGraphStorage,
1564
  ):
1565
+ node_names = [dp["entity_name"] for dp in node_datas]
1566
+ batch_edges_dict = await knowledge_graph_inst.get_nodes_edges_batch(node_names)
1567
+
1568
  all_edges = []
1569
  seen = set()
1570
 
1571
+ for node_name in node_names:
1572
+ this_edges = batch_edges_dict.get(node_name, [])
1573
  for e in this_edges:
1574
  sorted_edge = tuple(sorted(e))
1575
  if sorted_edge not in seen: