Skip to content

Commit 3fb42a8

Browse files
committed
Added factor to conversions_v2 option - resolves #1691
1 parent 8fbd950 commit 3fb42a8

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

lib/searchkick/query.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,8 @@ def set_conversions_v2
685685
{
686686
rank_feature: {
687687
field: "#{conversions_field}.#{conversions_term.to_s.downcase.gsub(".", "*")}",
688-
linear: {}
688+
linear: {},
689+
boost: conversions_v2[:factor] || 1
689690
}
690691
}
691692
end

test/conversions_test.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,20 @@ def test_v2_score
127127
assert_equal scores, scores_v2
128128
end
129129

130+
def test_v2_factor
131+
store [
132+
{name: "Tomato A", conversions: {"tomato" => 1}, conversions_v2: {"tomato" => 1}},
133+
{name: "Tomato B", conversions: {"tomato" => 2}, conversions_v2: {"tomato" => 2}},
134+
{name: "Tomato C", conversions: {"tomato" => 3}, conversions_v2: {"tomato" => 3}}
135+
]
136+
scores = Product.search("tomato", conversions_v1: false, conversions_v2: true, load: false).map(&:_score)
137+
scores2 = Product.search("tomato", conversions_v1: false, conversions_v2: {factor: 3}, load: false).map(&:_score)
138+
diffs = scores.zip(scores2).map { |a, b| b - a }
139+
assert_in_delta 6, diffs[0]
140+
assert_in_delta 4, diffs[1]
141+
assert_in_delta 2, diffs[2]
142+
end
143+
130144
def test_v2_no_tokenization
131145
store [
132146
{name: "Tomato A"},

0 commit comments

Comments
 (0)