optimize search query with join

This commit is contained in:
Daniel Klabbers 2021-11-08 16:46:15 +01:00
parent 8977d3d161
commit fd11442a76
1 changed files with 3 additions and 4 deletions

View File

@ -98,10 +98,9 @@ class SearchController extends ListDiscussionsController
});
$discussions = Discussion::query()
->whereIn('id', $results->pluck('discussion_id')->filter())
->orWhereHas('posts', function ($query) use ($results) {
$query->whereIn('id', $results->pluck('most_relevant_post_id'));
})
->join('posts', 'posts.discussion_id', 'discussions.id')
->whereIn('discussions.id', $results->pluck('discussion_id')->filter())
->orWhereIn('posts.id', $results->pluck('most_relevant_post_id')->filter())
->get()
->each(function (Discussion $discussion) use ($results) {
if (in_array($discussion->id, $results->pluck('discussion_id')->toArray())) {