Optimize query performance by batch query
This commit is contained in:
@@ -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:
|
||||||
|
Reference in New Issue
Block a user