mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 13:06:56 +08:00
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.
This commit is contained in:
@ -187,7 +187,7 @@ class Search
|
||||
|
||||
@results = GroupedSearchResults.new(
|
||||
@opts[:type_filter],
|
||||
term,
|
||||
clean_term,
|
||||
@search_context,
|
||||
@include_blurbs,
|
||||
@blurb_length
|
||||
|
@ -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
|
||||
|
@ -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',
|
||||
|
Reference in New Issue
Block a user