diff --git a/CHANGELOG.md b/CHANGELOG.md index 7be5d6b..501ee96 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ - Added `async` to `callbacks` option - Added `wordnet` option +- Added `edit_distance` option to eventually replace `distance` option +- Catch misspelling of `misspellings` option ## 0.8.1 diff --git a/README.md b/README.md index bf51c9d..2fa7fc0 100644 --- a/README.md +++ b/README.md @@ -275,7 +275,7 @@ Product.search "zuchini", misspellings: false # no zucchini You can also change the edit distance with: ```ruby -Product.search "zucini", misspellings: {distance: 2} # zucchini +Product.search "zucini", misspellings: {edit_distance: 2} # zucchini ``` ### Indexing diff --git a/lib/searchkick/query.rb b/lib/searchkick/query.rb index 54c237f..a791028 100644 --- a/lib/searchkick/query.rb +++ b/lib/searchkick/query.rb @@ -102,11 +102,12 @@ module Searchkick shared_options.merge(boost: 10 * factor, analyzer: "searchkick_search"), shared_options.merge(boost: 10 * factor, analyzer: "searchkick_search2") ] - if options[:misspellings] != false - distance = (options[:misspellings].is_a?(Hash) && options[:misspellings][:distance]) || 1 + misspellings = options.has_key?(:misspellings) ? options[:misspellings] : options[:mispellings] # why not? + if misspellings != false + edit_distance = (misspellings.is_a?(Hash) && (misspellings[:edit_distance] || misspellings[:distance])) || 1 qs.concat [ - shared_options.merge(fuzziness: distance, max_expansions: 3, analyzer: "searchkick_search"), - shared_options.merge(fuzziness: distance, max_expansions: 3, analyzer: "searchkick_search2") + shared_options.merge(fuzziness: edit_distance, max_expansions: 3, analyzer: "searchkick_search"), + shared_options.merge(fuzziness: edit_distance, max_expansions: 3, analyzer: "searchkick_search2") ] end elsif field.end_with?(".exact") -- libgit2 0.21.0