From fef6612d622bac561125a512fd2551adebdbb1c5 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Sat, 26 Oct 2019 15:41:39 +0200 Subject: [PATCH] Revert search performance regression We decided it is better to have a less intelligent search (that does not match search terms in titles) for some people than a bad-performing search for everyone. We will revisit the search performance topic in the next release cycle, possibly with larger changes around indexing. Refs #1738, #1741, #1764. --- .../core/src/Discussion/Search/Gambit/FulltextGambit.php | 2 +- .../api/Controller/ListDiscussionsControllerTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/core/src/Discussion/Search/Gambit/FulltextGambit.php b/framework/core/src/Discussion/Search/Gambit/FulltextGambit.php index e836d9544..0967e5b3f 100644 --- a/framework/core/src/Discussion/Search/Gambit/FulltextGambit.php +++ b/framework/core/src/Discussion/Search/Gambit/FulltextGambit.php @@ -53,7 +53,7 @@ class FulltextGambit implements GambitInterface // discussions that have a relevant title or that contain relevant posts. $query ->addSelect('posts_ft.most_relevant_post_id') - ->leftJoin( + ->join( new Expression('('.$subquery->toSql().') '.$grammar->wrapTable('posts_ft')), 'posts_ft.discussion_id', '=', 'discussions.id' ) diff --git a/framework/core/tests/integration/api/Controller/ListDiscussionsControllerTest.php b/framework/core/tests/integration/api/Controller/ListDiscussionsControllerTest.php index 150337626..2e156a654 100644 --- a/framework/core/tests/integration/api/Controller/ListDiscussionsControllerTest.php +++ b/framework/core/tests/integration/api/Controller/ListDiscussionsControllerTest.php @@ -76,7 +76,7 @@ class ListDiscussionsControllerTest extends ApiControllerTestCase /** * @test */ - public function can_search_for_word_in_title_and_post() + public function can_search_for_word_in_post() { $this->database()->table('posts')->insert([ ['id' => 2, 'discussion_id' => 2, 'created_at' => Carbon::now()->toDateTimeString(), 'user_id' => 2, 'type' => 'comment', 'content' => '

not in text

'], @@ -98,7 +98,7 @@ class ListDiscussionsControllerTest extends ApiControllerTestCase }, $data['data']); // Order-independent comparison - $this->assertEquals(['2', '3'], $ids, 'IDs do not match', 0.0, 10, true); + $this->assertEquals(['3'], $ids, 'IDs do not match', 0.0, 10, true); } /** @@ -126,7 +126,7 @@ class ListDiscussionsControllerTest extends ApiControllerTestCase }, $data['data']); // Order-independent comparison - $this->assertEquals(['2', '3'], $ids, 'IDs do not match', 0.0, 10, true); + $this->assertEquals(['3'], $ids, 'IDs do not match', 0.0, 10, true); } /**