diff --git a/lib/search.rb b/lib/search.rb index 0b3b71003a0..90de3f7c6a0 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -1279,7 +1279,7 @@ class Search #{ts_config}, t1.fancy_title, PLAINTO_TSQUERY(#{ts_config}, '#{search_term}'), - 'StartSel='''', StopSel=''''' + 'StartSel='''', StopSel='''', HighlightAll=true' ) AS topic_title_headline", "TS_HEADLINE( #{ts_config}, diff --git a/spec/components/search_spec.rb b/spec/components/search_spec.rb index 5c8c19607db..b34e2c40807 100644 --- a/spec/components/search_spec.rb +++ b/spec/components/search_spec.rb @@ -542,6 +542,19 @@ describe Search do expect(post.headline.include?('elephant')).to eq(false) end + it "does not truncate topic title when applying highlights" do + SiteSetting.use_pg_headlines_for_excerpt = true + + topic = reply.topic + topic.update!(title: "#{'very ' * 7}long topic title with our search term in the middle of the title") + + result = Search.execute('search term') + + expect(result.posts.first.topic_title_headline).to eq(<<~TITLE.chomp) + Very very very very very very very long topic title with our search term in the middle of the title + TITLE + end + it "limits the search headline to #{Search::GroupedSearchResults::BLURB_LENGTH} characters" do SiteSetting.use_pg_headlines_for_excerpt = true