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 +4 -4
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +1 -1
- data/README.md +0 -6
- data/lib/searchkick.rb +1 -1
- data/lib/searchkick/index_options.rb +2 -2
- data/lib/searchkick/model.rb +3 -2
- data/lib/searchkick/query.rb +14 -2
- data/lib/searchkick/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa81f3f42b5f2e83d3db17aba5e43c84d49966d2ef132d285d843c0a81e3b252
|
4
|
+
data.tar.gz: 9cb2777b0ad6c6f328e99b6292f4253c113772d8b15b28d6bc013949f5375a44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77bd3f87f47c97a2ed6c76854ac148cfb350f6cff97cf5158e29dec2a9812f262633561da245f6c495931e9070f36b9c15e8fec24e89380071a8548109cb2b24
|
7
|
+
data.tar.gz: ace8f56a6506eb6c6ba0f05562978d91d619839e34d840ecb1af72d666fa1e86d46fe4528e868218ce731292b91df4602defad88fc79d36e8f22cd7c6dc20178
|
data/CHANGELOG.md
CHANGED
data/LICENSE.txt
CHANGED
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`
|
data/lib/searchkick.rb
CHANGED
@@ -126,12 +126,12 @@ module Searchkick
|
|
126
126
|
max_shingle_size: 5
|
127
127
|
},
|
128
128
|
searchkick_edge_ngram: {
|
129
|
-
type: "
|
129
|
+
type: "edge_ngram",
|
130
130
|
min_gram: 1,
|
131
131
|
max_gram: 50
|
132
132
|
},
|
133
133
|
searchkick_ngram: {
|
134
|
-
type: "
|
134
|
+
type: "ngram",
|
135
135
|
min_gram: 1,
|
136
136
|
max_gram: 50
|
137
137
|
},
|
data/lib/searchkick/model.rb
CHANGED
@@ -41,7 +41,7 @@ module Searchkick
|
|
41
41
|
|
42
42
|
class << self
|
43
43
|
def searchkick_search(term = "*", **options, &block)
|
44
|
-
Searchkick.search(term,
|
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
|
data/lib/searchkick/query.rb
CHANGED
@@ -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
|
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
|
data/lib/searchkick/version.rb
CHANGED
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.
|
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:
|
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.
|
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
|