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() $discussions = Discussion::query()
->whereIn('id', $results->pluck('discussion_id')->filter()) ->join('posts', 'posts.discussion_id', 'discussions.id')
->orWhereHas('posts', function ($query) use ($results) { ->whereIn('discussions.id', $results->pluck('discussion_id')->filter())
$query->whereIn('id', $results->pluck('most_relevant_post_id')); ->orWhereIn('posts.id', $results->pluck('most_relevant_post_id')->filter())
})
->get() ->get()
->each(function (Discussion $discussion) use ($results) { ->each(function (Discussion $discussion) use ($results) {
if (in_array($discussion->id, $results->pluck('discussion_id')->toArray())) { if (in_array($discussion->id, $results->pluck('discussion_id')->toArray())) {