Commit e3a55de15af55dbc59fa91440d5f521b13560864

Authored by Andrew Kane
1 parent e3706c8e

Fixed error with more language stemmers and Elasticsearch 6.5

Showing 2 changed files with 14 additions and 5 deletions   Show diff stats
CHANGELOG.md
1 1 ## 3.1.3 [unreleased]
2 2  
3 3 - Added `prefix` to `where`
4   -- Fixed error with Japanese stemmer and Elasticsearch 6.5
  4 +- Fixed error with language stemmers and Elasticsearch 6.5
5 5  
6 6 ## 3.1.2
7 7  
... ...
lib/searchkick/index_options.rb
... ... @@ -153,6 +153,8 @@ module Searchkick
153 153 end
154 154 end
155 155  
  156 + stem = options[:stem]
  157 +
156 158 case language
157 159 when "chinese"
158 160 settings[:analysis][:analyzer].merge!(
... ... @@ -167,7 +169,7 @@ module Searchkick
167 169 }
168 170 )
169 171  
170   - settings[:analysis][:filter].delete(:searchkick_stemmer)
  172 + stem = false
171 173 when "japanese"
172 174 settings[:analysis][:analyzer].merge!(
173 175 default_analyzer => {
... ... @@ -181,7 +183,7 @@ module Searchkick
181 183 }
182 184 )
183 185  
184   - settings[:analysis][:filter].delete(:searchkick_stemmer)
  186 + stem = false
185 187 when "korean"
186 188 settings[:analysis][:analyzer].merge!(
187 189 default_analyzer => {
... ... @@ -194,6 +196,8 @@ module Searchkick
194 196 type: "openkoreantext-analyzer"
195 197 }
196 198 )
  199 +
  200 + stem = false
197 201 when "vietnamese"
198 202 settings[:analysis][:analyzer].merge!(
199 203 default_analyzer => {
... ... @@ -206,6 +210,8 @@ module Searchkick
206 210 type: "vi_analyzer"
207 211 }
208 212 )
  213 +
  214 + stem = false
209 215 when "polish", "ukrainian", "smartcn"
210 216 settings[:analysis][:analyzer].merge!(
211 217 default_analyzer => {
... ... @@ -218,6 +224,8 @@ module Searchkick
218 224 type: language
219 225 }
220 226 )
  227 +
  228 + stem = false
221 229 end
222 230  
223 231 if Searchkick.env == "test"
... ... @@ -242,9 +250,10 @@ module Searchkick
242 250 end
243 251 end
244 252  
245   - if options[:stem] == false
  253 + if stem == false
  254 + settings[:analysis][:filter].delete(:searchkick_stemmer)
246 255 settings[:analysis][:analyzer].each do |_, analyzer|
247   - analyzer[:filter].delete("searchkick_stemmer")
  256 + analyzer[:filter].delete("searchkick_stemmer") if analyzer[:filter]
248 257 end
249 258 end
250 259  
... ...