From 76e0a2cb364d3e7e8bc0f7405b2f342109fe42df Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Mon, 7 Nov 2016 22:26:31 -0800 Subject: [PATCH] Added debug option to search method --- CHANGELOG.md | 4 ++++ lib/searchkick/model.rb | 25 +------------------------ lib/searchkick/query.rb | 43 +++++++++++++++++++++++++++++++++++++++---- 3 files changed, 44 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73fcb76..efefff2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.1 [unreleased] + +- Added `debug` option to `search` method + ## 1.4.0 - Boost exact matches for partial matching diff --git a/lib/searchkick/model.rb b/lib/searchkick/model.rb index 5a325b4..aa476a8 100644 --- a/lib/searchkick/model.rb +++ b/lib/searchkick/model.rb @@ -71,30 +71,7 @@ module Searchkick end def searchkick_debug - require "pp" - - puts "Model Searchkick Options" - pp searchkick_options - puts - - puts "Model Sample Search Data" - begin - pp first(3).map { |r| {index: searchkick_index.record_data(r).merge(data: searchkick_index.send(:search_data, r))}} - rescue => e - puts "#{e.class.name}: #{e.message}" - end - puts - - puts "Elasticsearch Mapping" - puts JSON.pretty_generate(searchkick_index.mapping) - puts - - puts "Elasticsearch Settings" - puts JSON.pretty_generate(searchkick_index.settings) - puts - - puts "Elasticsearch Sample Results" - puts JSON.pretty_generate(search("*", load: false, limit: 3).response) + warn "Use debug option with search method instead" nil # do not return anything, as this is strictly used for manual debugging end diff --git a/lib/searchkick/query.rb b/lib/searchkick/query.rb index 19f720b..3340b0c 100644 --- a/lib/searchkick/query.rb +++ b/lib/searchkick/query.rb @@ -112,11 +112,46 @@ module Searchkick padding: @padding, load: @load, includes: options[:include] || options[:includes], - json: !options[:json].nil?, + json: !@json.nil?, match_suffix: @match_suffix, highlighted_fields: @highlighted_fields || [] } + if options[:debug] + require "pp" + + puts "Searchkick Version: #{Searchkick::VERSION}" + puts "Elasticsearch Version: #{Searchkick.server_version}" + puts + + puts "Model Searchkick Options" + pp searchkick_options + puts + + puts "Search Options" + pp options + puts + + puts "Model Search Data" + begin + pp klass.first(3).map { |r| {index: searchkick_index.record_data(r).merge(data: searchkick_index.send(:search_data, r))}} + rescue => e + puts "#{e.class.name}: #{e.message}" + end + puts + + puts "Elasticsearch Mapping" + puts JSON.pretty_generate(searchkick_index.mapping) + puts + + puts "Elasticsearch Settings" + puts JSON.pretty_generate(searchkick_index.settings) + puts + + puts "Elasticsearch Results" + puts JSON.pretty_generate(response) + end + # set execute for multi search @execute = Searchkick::Results.new(searchkick_klass, response, opts) end @@ -173,9 +208,9 @@ module Searchkick all = term == "*" - options[:json] ||= options[:body] - if options[:json] - payload = options[:json] + @json = options[:json] || options[:body] + if @json + payload = @json else if options[:query] payload = options[:query] -- libgit2 0.21.0