From cb1f8913926c559449ee715b436d8fd5ac391243 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Thu, 9 Jul 2020 16:19:18 +0100 Subject: [PATCH] Revert "FIX: Incorrect search blurb when advanced search filters are used." This change was causing advanced search filters to disappear from the search input This reverts commit 2e1eafae0647f6db439d6337b26d83edbca42865. --- lib/search.rb | 2 +- lib/search/grouped_search_results.rb | 15 ++++++++------- spec/requests/search_controller_spec.rb | 20 +------------------- 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/lib/search.rb b/lib/search.rb index 8b868821bdf..2525591282b 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -187,7 +187,7 @@ class Search @results = GroupedSearchResults.new( @opts[:type_filter], - term, + clean_term, @search_context, @include_blurbs, @blurb_length diff --git a/lib/search/grouped_search_results.rb b/lib/search/grouped_search_results.rb index 75f75ab3f42..f5239018877 100644 --- a/lib/search/grouped_search_results.rb +++ b/lib/search/grouped_search_results.rb @@ -30,14 +30,12 @@ class Search attr_accessor :search_log_id - BLURB_LENGTH = 200 - def initialize(type_filter, term, search_context, include_blurbs, blurb_length) @type_filter = type_filter @term = term @search_context = search_context @include_blurbs = include_blurbs - @blurb_length = blurb_length || BLURB_LENGTH + @blurb_length = blurb_length || 200 @posts = [] @categories = [] @users = [] @@ -74,7 +72,7 @@ class Search end end - def self.blurb_for(cooked, term = nil, blurb_length = BLURB_LENGTH) + def self.blurb_for(cooked, term = nil, blurb_length = 200) blurb = nil cooked = SearchIndexer.scrub_html_for_search(cooked) @@ -93,11 +91,14 @@ class Search end if term - if term =~ Regexp.new(Search::PHRASE_MATCH_REGEXP_PATTERN) - term = Regexp.last_match[1] + terms = term.split(/\s+/) + phrase = terms.first + + if phrase =~ Regexp.new(Search::PHRASE_MATCH_REGEXP_PATTERN) + phrase = Regexp.last_match[1] end - blurb = TextHelper.excerpt(cooked, term, + blurb = TextHelper.excerpt(cooked, phrase, radius: blurb_length / 2 ) end diff --git a/spec/requests/search_controller_spec.rb b/spec/requests/search_controller_spec.rb index ba24bf29058..044e741d54d 100644 --- a/spec/requests/search_controller_spec.rb +++ b/spec/requests/search_controller_spec.rb @@ -101,25 +101,6 @@ describe SearchController do expect(data['topics'][0]['id']).to eq(awesome_post.topic_id) end - it "can search correctly with advanced search filters" do - awesome_post.update!( - raw: "#{"a" * Search::GroupedSearchResults::BLURB_LENGTH} elephant" - ) - - get "/search/query.json", params: { - term: 'order:views elephant', include_blurb: true - } - - expect(response.status).to eq(200) - - data = response.parsed_body - - expect(data['posts'].length).to eq(1) - expect(data['posts'][0]['id']).to eq(awesome_post.id) - expect(data['posts'][0]['blurb']).to include('elephant') - expect(data['topics'][0]['id']).to eq(awesome_post.topic_id) - end - it 'performs the query with a type filter' do get "/search/query.json", params: { @@ -160,6 +141,7 @@ describe SearchController do end it "should return the right result" do + get "/search/query.json", params: { term: user_post.topic_id, type_filter: 'topic',