searchkick 4.2.0 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
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