Fix: Improve concepts tree performance #794
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR description
This PR provides partial improvements to the tree view performance. However, the primary bottleneck is in the backend, which requires specific endpoints optimized for the tree view, rather than relying on the default concept endpoints.
Changes
Optimized data retrieval in
ConceptsController#index
:The most time-consuming call when expanding a subtree is
@concept = @ontology.explore.single_class({full: true}, params[:id])
In this PR, it has been updated to
@concept = @ontology.explore.single_class({display: 'prefLabel'}, params[:id])
, as only the prefLabel and id are necessary at this level.(Note: This change provides a slight improvement in response time but does not fully resolve the delay.)
Removed redundant sorting:
Sorting of concept children was duplicated both in the controller and in the component, adding approximately 1 second to load time.