Commit 931fe97212a5260845b2396f32c1b56ccb966055

Authored by Peter Plant
Committed by Andrew Kane
1 parent 0defdd40

Enhance boost by distance with factor (#1028)

Showing 2 changed files with 12 additions and 0 deletions   Show diff stats
lib/searchkick/query.rb
... ... @@ -551,6 +551,7 @@ module Searchkick
551 551 function_params = attributes.select { |k, _| [:origin, :scale, :offset, :decay].include?(k) }
552 552 function_params[:origin] = location_value(function_params[:origin])
553 553 custom_filters << {
  554 + :weight => attributes[:factor] || 1,
554 555 attributes[:function] => {
555 556 field => function_params
556 557 }
... ...
test/boost_test.rb
... ... @@ -191,6 +191,17 @@ class BoostTest &lt; Minitest::Test
191 191 assert_order "san", ["San Francisco", "San Antonio", "San Marino"], boost_by_distance: {location: {origin: {lat: 37, lon: -122}, scale: "1000mi"}}
192 192 end
193 193  
  194 + def test_boost_by_distance_v2_factor
  195 + store [
  196 + {name: "San Francisco", latitude: 37.7833, longitude: -122.4167, found_rate: 0.1},
  197 + {name: "San Antonio", latitude: 29.4167, longitude: -98.5000, found_rate: 0.99},
  198 + {name: "San Marino", latitude: 43.9333, longitude: 12.4667, found_rate: 0.2}
  199 + ]
  200 +
  201 + assert_order "san", ["San Antonio","San Francisco", "San Marino"], boost_by: {found_rate: {factor: 100}},boost_by_distance: {location: {origin: [37, -122], scale: "1000mi"}}
  202 + assert_order "san", ["San Francisco", "San Antonio", "San Marino"], boost_by: {found_rate: {factor: 100}} , boost_by_distance: {location: {origin: [37, -122], scale: "1000mi", factor: 100}}
  203 + end
  204 +
194 205 def test_boost_by_indices
195 206 skip if cequel?
196 207  
... ...