Skip to content

Commit

Permalink
Merge pull request #331 from nlpgo/master
Browse files Browse the repository at this point in the history
Fixed highlight problem when a stemming dictionary is configured.
  • Loading branch information
nertzy authored Jan 16, 2017
2 parents 1168b3b + 1d77fbb commit 07426a8
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/pg_search/features/tsearch.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def highlight
private

def ts_headline
"ts_headline((#{document}), (#{tsquery}), '#{ts_headline_options}')"
"ts_headline(#{dictionary.to_sql}, (#{document}), (#{tsquery}), '#{ts_headline_options}')"
end

def ts_headline_options
Expand Down
27 changes: 27 additions & 0 deletions spec/lib/pg_search/features/tsearch_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,31 @@
end
end
end

describe "#highlight" do
with_model :Model do
table do |t|
t.string :name
t.text :content
end
end

context "when options[:dictionary] is passed" do
it 'uses the provided dictionary' do
query = "query"
columns = [
PgSearch::Configuration::Column.new(:name, nil, Model),
PgSearch::Configuration::Column.new(:content, nil, Model),
]
options = { dictionary: "spanish", highlight: {start_sel: "<b>", stop_sel: "</b>"} }
config = double(:config, :ignore => [])
normalizer = PgSearch::Normalizer.new(config)

feature = described_class.new(query, options, columns, Model, normalizer)
expect(feature.highlight.to_sql).to eq(
%{(ts_headline('#{options[:dictionary]}', (coalesce(#{Model.quoted_table_name}."name"::text, '') || ' ' || coalesce(#{Model.quoted_table_name}."content"::text, '')), (to_tsquery('#{options[:dictionary]}', ''' ' || 'query' || ' ''')), 'StartSel = #{options[:highlight][:start_sel]}, StopSel = #{options[:highlight][:stop_sel]}'))}
)
end
end
end
end

0 comments on commit 07426a8

Please sign in to comment.