Don't use Elasticsearch join for group/project MR searches
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]( https://gitlab.com/gitlab-org/gitlab/-/blob/339e55b484ce7f4250ef5bbb451c9ed2eac7c6e2/ee/lib/elastic/latest/application_class_proxy.rb#L145 ) 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 https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46461 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 https://gitlab.com/groups/gitlab-org/-/epics/5468
Showing
Please register or sign in to comment