Commit 1418ccac8a1ca35efcb7e9f624e4dde17c64dcca

Authored by Andrew Kane
1 parent 857b853c

Fixed suggestions for partial matches - closes #190

  1 +## 0.7.3 [unreleased]
  2 +
  3 +- Fixed suggestions for partial matches
  4 +
1 ## 0.7.2 5 ## 0.7.2
2 6
3 - Added smart facets 7 - Added smart facets
lib/searchkick/query.rb
@@ -254,8 +254,12 @@ module Searchkick @@ -254,8 +254,12 @@ module Searchkick
254 # suggestions 254 # suggestions
255 if options[:suggest] 255 if options[:suggest]
256 suggest_fields = (searchkick_options[:suggest] || []).map(&:to_s) 256 suggest_fields = (searchkick_options[:suggest] || []).map(&:to_s)
  257 +
257 # intersection 258 # intersection
258 - suggest_fields = suggest_fields & options[:fields].map(&:to_s) if options[:fields] 259 + if options[:fields]
  260 + suggest_fields = suggest_fields & options[:fields].map{|v| (v.is_a?(Hash) ? v.keys.first : v).to_s }
  261 + end
  262 +
259 if suggest_fields.any? 263 if suggest_fields.any?
260 payload[:suggest] = {text: term} 264 payload[:suggest] = {text: term}
261 suggest_fields.each do |field| 265 suggest_fields.each do |field|
test/suggest_test.rb
@@ -56,6 +56,11 @@ class TestSuggest < Minitest::Unit::TestCase @@ -56,6 +56,11 @@ class TestSuggest < Minitest::Unit::TestCase
56 assert_suggest "shar", "shark", fields: [:name, :unknown] 56 assert_suggest "shar", "shark", fields: [:name, :unknown]
57 end 57 end
58 58
  59 + def test_fields_word_start
  60 + store_names ["Great White Shark", "Hammerhead Shark", "Tiger Shark"]
  61 + assert_suggest "How Big is a Tigre Shar", "how big is a tiger shark", fields: [{name: :word_start}]
  62 + end
  63 +
59 protected 64 protected
60 65
61 def assert_suggest(term, expected, options = {}) 66 def assert_suggest(term, expected, options = {})