From 0f5dd5af62f706d42e919584a94edaaf93096de9 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 1 Mar 2018 01:52:06 -0800 Subject: [PATCH] Moved conversions to own function --- lib/searchkick/query.rb | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/lib/searchkick/query.rb b/lib/searchkick/query.rb index 297db7d..834edee 100644 --- a/lib/searchkick/query.rb +++ b/lib/searchkick/query.rb @@ -219,8 +219,6 @@ module Searchkick # model and eager loading load = options[:load].nil? ? true : options[:load] - conversions_fields = Array(options[:conversions] || searchkick_options[:conversions]).map(&:to_s) - all = term == "*" @json = options[:body] @@ -397,29 +395,7 @@ module Searchkick } } - if conversions_fields.present? && options[:conversions] != false - conversions_fields.each do |conversions_field| - should << { - nested: { - path: conversions_field, - score_mode: "sum", - query: { - function_score: { - boost_mode: "replace", - query: { - match: { - "#{conversions_field}.query" => options[:conversions_term] || term - } - }, - field_value_factor: { - field: "#{conversions_field}.count" - } - } - } - } - } - end - end + set_conversions(should) query = payload end @@ -561,6 +537,33 @@ module Searchkick [boost_fields, fields] end + def set_conversions(should) + conversions_fields = Array(options[:conversions] || searchkick_options[:conversions]).map(&:to_s) + if conversions_fields.present? && options[:conversions] != false + conversions_fields.each do |conversions_field| + should << { + nested: { + path: conversions_field, + score_mode: "sum", + query: { + function_score: { + boost_mode: "replace", + query: { + match: { + "#{conversions_field}.query" => options[:conversions_term] || term + } + }, + field_value_factor: { + field: "#{conversions_field}.count" + } + } + } + } + } + end + end + end + def set_boost_by_distance(custom_filters) boost_by_distance = options[:boost_by_distance] || {} -- libgit2 0.21.0