Refactored DocumentService.update_progress (#5642)

### What problem does this PR solve?

Refactored DocumentService.update_progress

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
Zhichang Yu
2025-03-05 14:48:03 +08:00
committed by GitHub
parent 02c955babb
commit f65c3ae62b
5 changed files with 49 additions and 54 deletions

View File

@ -104,14 +104,14 @@ class EntityResolution(Extractor):
connect_graph = nx.Graph()
removed_entities = []
connect_graph.add_edges_from(resolution_result)
# for issue #5600
all_entities_data = []
all_relationships_data = []
for sub_connect_graph in nx.connected_components(connect_graph):
sub_connect_graph = connect_graph.subgraph(sub_connect_graph)
remove_nodes = list(sub_connect_graph.nodes)
keep_node = remove_nodes.pop()
await self._merge_nodes(keep_node, self._get_entity_(remove_nodes), all_relationships_data=all_relationships_data)
await self._merge_nodes(keep_node, self._get_entity_(remove_nodes), all_entities_data)
for remove_node in remove_nodes:
removed_entities.append(remove_node)
remove_node_neighbors = graph[remove_node]
@ -127,7 +127,7 @@ class EntityResolution(Extractor):
if not rel:
continue
if graph.has_edge(keep_node, remove_node_neighbor):
self._merge_edges(keep_node, remove_node_neighbor, [rel])
await self._merge_edges(keep_node, remove_node_neighbor, [rel], all_relationships_data)
else:
pair = sorted([keep_node, remove_node_neighbor])
graph.add_edge(pair[0], pair[1], weight=rel['weight'])