searchkick 4.2.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0529381ceedcb4630640d4ae37b02ac2e950c3088a757946b930e56e0a8d4591'
4
- data.tar.gz: 539ee2b8da1632f5b86ff3da063e5b815fac2ba3edb5efc2b3d2d508cdb9c002
3
+ metadata.gz: fa81f3f42b5f2e83d3db17aba5e43c84d49966d2ef132d285d843c0a81e3b252
4
+ data.tar.gz: 9cb2777b0ad6c6f328e99b6292f4253c113772d8b15b28d6bc013949f5375a44
5
5
  SHA512:
6
- metadata.gz: cfb0aa73064ee937db83d948086bf5f9f1a81bc597f871288786f18ddaff1f39edf202c3a877d4147c3e963c1a736130f4250e10238444924347dbf8854b15c0
7
- data.tar.gz: d4733742e12185d5f6296361948a20a2cc11ad14cf0f2c254cbcb80b5f5c64ba6754eb46161b22e33d786363a94b7e79db8b55d567e77ee8dc46ed3a9d7ab246
6
+ metadata.gz: 77bd3f87f47c97a2ed6c76854ac148cfb350f6cff97cf5158e29dec2a9812f262633561da245f6c495931e9070f36b9c15e8fec24e89380071a8548109cb2b24
7
+ data.tar.gz: ace8f56a6506eb6c6ba0f05562978d91d619839e34d840ecb1af72d666fa1e86d46fe4528e868218ce731292b91df4602defad88fc79d36e8f22cd7c6dc20178
@@ -1,3 +1,8 @@
1
+ ## 4.2.1 (2020-01-27)
2
+
3
+ - Fixed deprecation warnings with Elasticsearch
4
+ - Fixed deprecation warnings in Ruby 2.7
5
+
1
6
  ## 4.2.0 (2019-12-18)
2
7
 
3
8
  - Added safety check for multiple `Model.reindex`
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013-2019 Andrew Kane
1
+ Copyright (c) 2013-2020 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -4,12 +4,6 @@
4
4
 
5
5
  **Searchkick learns what your users are looking for.** As more people search, it gets smarter and the results get better. It’s friendly for developers - and magical for your users.
6
6
 
7
- ---
8
-
9
- [Searchkick Pro](https://searchkick.org/pro?utm_source=readme) is now available!
10
-
11
- ---
12
-
13
7
  Searchkick handles:
14
8
 
15
9
  - stemming - `tomatoes` matches `tomato`
@@ -112,7 +112,7 @@ module Searchkick
112
112
  end
113
113
 
114
114
  options = options.merge(block: block) if block
115
- query = Searchkick::Query.new(klass, term, options)
115
+ query = Searchkick::Query.new(klass, term, **options)
116
116
  if options[:execute] == false
117
117
  query
118
118
  else
@@ -126,12 +126,12 @@ module Searchkick
126
126
  max_shingle_size: 5
127
127
  },
128
128
  searchkick_edge_ngram: {
129
- type: "edgeNGram",
129
+ type: "edge_ngram",
130
130
  min_gram: 1,
131
131
  max_gram: 50
132
132
  },
133
133
  searchkick_ngram: {
134
- type: "nGram",
134
+ type: "ngram",
135
135
  min_gram: 1,
136
136
  max_gram: 50
137
137
  },
@@ -41,7 +41,7 @@ module Searchkick
41
41
 
42
42
  class << self
43
43
  def searchkick_search(term = "*", **options, &block)
44
- Searchkick.search(term, {model: self}.merge(options), &block)
44
+ Searchkick.search(term, model: self, **options, &block)
45
45
  end
46
46
  alias_method Searchkick.search_method_name, :searchkick_search if Searchkick.search_method_name
47
47
 
@@ -79,8 +79,9 @@ module Searchkick
79
79
  RecordIndexer.new(self).reindex(method_name, **options)
80
80
  end unless method_defined?(:reindex)
81
81
 
82
+ # TODO switch to keyword arguments
82
83
  def similar(options = {})
83
- self.class.searchkick_index.similar_record(self, options)
84
+ self.class.searchkick_index.similar_record(self, **options)
84
85
  end unless method_defined?(:similar)
85
86
 
86
87
  def search_data
@@ -350,7 +350,7 @@ module Searchkick
350
350
  field_misspellings = misspellings && (!misspellings_fields || misspellings_fields.include?(base_field(field)))
351
351
 
352
352
  if field == "_all" || field.end_with?(".analyzed")
353
- shared_options[:cutoff_frequency] = 0.001 unless operator.to_s == "and" || field_misspellings == false
353
+ shared_options[:cutoff_frequency] = 0.001 unless operator.to_s == "and" || field_misspellings == false || (!below73? && !track_total_hits?)
354
354
  qs << shared_options.merge(analyzer: "searchkick_search")
355
355
 
356
356
  # searchkick_search and searchkick_search2 are the same for ukrainian
@@ -522,7 +522,7 @@ module Searchkick
522
522
  # routing
523
523
  @routing = options[:routing] if options[:routing]
524
524
 
525
- if searchkick_options[:deep_paging] && !below70?
525
+ if track_total_hits?
526
526
  payload[:track_total_hits] = true
527
527
  end
528
528
 
@@ -1100,6 +1100,14 @@ module Searchkick
1100
1100
  k.sub(/\.(analyzed|word_start|word_middle|word_end|text_start|text_middle|text_end|exact)\z/, "")
1101
1101
  end
1102
1102
 
1103
+ def track_total_hits?
1104
+ (searchkick_options[:deep_paging] && !below70?) || body_options[:track_total_hits]
1105
+ end
1106
+
1107
+ def body_options
1108
+ options[:body_options] || {}
1109
+ end
1110
+
1103
1111
  def below61?
1104
1112
  Searchkick.server_below?("6.1.0")
1105
1113
  end
@@ -1108,6 +1116,10 @@ module Searchkick
1108
1116
  Searchkick.server_below?("7.0.0")
1109
1117
  end
1110
1118
 
1119
+ def below73?
1120
+ Searchkick.server_below?("7.3.0")
1121
+ end
1122
+
1111
1123
  def below75?
1112
1124
  Searchkick.server_below?("7.5.0")
1113
1125
  end
@@ -1,3 +1,3 @@
1
1
  module Searchkick
2
- VERSION = "4.2.0"
2
+ VERSION = "4.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchkick
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-19 00:00:00.000000000 Z
11
+ date: 2020-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
148
- rubygems_version: 3.0.3
148
+ rubygems_version: 3.1.2
149
149
  signing_key:
150
150
  specification_version: 4
151
151
  summary: Intelligent search made easy with Rails and Elasticsearch