Don't use Elasticsearch join for group/project MR searches
What does this MR do?
When searching for merge requests in the context of a group we don't
need to use an Elasticsearch join. The join logic defined in
ApplicationClassProxy is not necessary as we are already filtering down based on the project
ID list the user has access to and hence we can just use the
target_project_id
field instead of joining to the project and using
the ID field.
This MR is basically identical to
!46461 (merged) but in this
case we need to use target_project_id
instead of project_id
since
the MR only had target_project_id
until recently and project_id
is
not yet backfilled.
This change on it's own will make searches more performance (since this term query is more efficient than a join) but it will additionally be the next step in allowing us to move merge requests to a separate index in Elasticsearch &5468 (closed)
Screenshots (strongly suggested)
Does this MR meet the acceptance criteria?
Conformity
-
📋 Does this MR need a changelog?-
I have included a changelog entry. -
I have not included a changelog entry because _____.
-
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Related to #322784 (closed)