searchkick 0.6.3 → 0.7.0
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/README.md +3 -5
- data/lib/searchkick/query.rb +23 -12
- data/lib/searchkick/version.rb +1 -1
- data/searchkick.gemspec +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60615f96360c3f13f09db4893caa5f2cb0b2a4e1
|
4
|
+
data.tar.gz: 74809a67cc8c765acae2acebcafd9636b93cdc3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3975e9b63fbf249f0d2ccb945275c39e426b02606a0a3433feed84f32c7f158b363311fe16ad13c54ac56eccfda9a40901e8d4ac527fd4268ddd8080751f752f
|
7
|
+
data.tar.gz: ddc5145efa1ac5c96c72728d42ce6fca5a8609490de52f89a974901b421c698df1d12c15c04cb2e6d84b14b1f672eb2fe08322a8b2b0fc17f147950a16c5a53f
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -595,7 +595,7 @@ products = query.execute
|
|
595
595
|
|
596
596
|
## Reference
|
597
597
|
|
598
|
-
Searchkick requires Elasticsearch `0.90.
|
598
|
+
Searchkick requires Elasticsearch `0.90.4` or higher.
|
599
599
|
|
600
600
|
Reindex one record
|
601
601
|
|
@@ -791,7 +791,5 @@ Everyone is encouraged to help improve this project. Here are a few ways you can
|
|
791
791
|
To get started with development and testing:
|
792
792
|
|
793
793
|
1. Clone the repo
|
794
|
-
2.
|
795
|
-
3.
|
796
|
-
4. `bundle`
|
797
|
-
5. `rake test`
|
794
|
+
2. `bundle`
|
795
|
+
3. `rake test`
|
data/lib/searchkick/query.rb
CHANGED
@@ -78,9 +78,9 @@ module Searchkick
|
|
78
78
|
fields: [field],
|
79
79
|
query: term,
|
80
80
|
use_dis_max: false,
|
81
|
-
operator: operator
|
82
|
-
cutoff_frequency: 0.001
|
81
|
+
operator: operator
|
83
82
|
}
|
83
|
+
shared_options[:cutoff_frequency] = 0.001 unless operator == "and"
|
84
84
|
queries.concat [
|
85
85
|
{multi_match: shared_options.merge(boost: 10, analyzer: "searchkick_search")},
|
86
86
|
{multi_match: shared_options.merge(boost: 10, analyzer: "searchkick_search2")}
|
@@ -121,13 +121,16 @@ module Searchkick
|
|
121
121
|
path: conversions_field,
|
122
122
|
score_mode: "total",
|
123
123
|
query: {
|
124
|
-
|
124
|
+
function_score: {
|
125
|
+
boost_mode: "replace",
|
125
126
|
query: {
|
126
127
|
match: {
|
127
128
|
query: term
|
128
129
|
}
|
129
130
|
},
|
130
|
-
|
131
|
+
script_score: {
|
132
|
+
script: "doc['count'].value"
|
133
|
+
}
|
131
134
|
}
|
132
135
|
}
|
133
136
|
}
|
@@ -146,7 +149,9 @@ module Searchkick
|
|
146
149
|
field: options[:boost]
|
147
150
|
}
|
148
151
|
},
|
149
|
-
|
152
|
+
script_score: {
|
153
|
+
script: "log(doc['#{options[:boost]}'].value + 2.718281828)"
|
154
|
+
}
|
150
155
|
}
|
151
156
|
end
|
152
157
|
|
@@ -157,7 +162,7 @@ module Searchkick
|
|
157
162
|
personalize_field => options[:user_id]
|
158
163
|
}
|
159
164
|
},
|
160
|
-
|
165
|
+
boost_factor: 100
|
161
166
|
}
|
162
167
|
end
|
163
168
|
|
@@ -166,16 +171,16 @@ module Searchkick
|
|
166
171
|
filter: {
|
167
172
|
term: options[:personalize]
|
168
173
|
},
|
169
|
-
|
174
|
+
boost_factor: 100
|
170
175
|
}
|
171
176
|
end
|
172
177
|
|
173
178
|
if custom_filters.any?
|
174
179
|
payload = {
|
175
|
-
|
180
|
+
function_score: {
|
181
|
+
functions: custom_filters,
|
176
182
|
query: payload,
|
177
|
-
|
178
|
-
score_mode: "total"
|
183
|
+
score_mode: "sum"
|
179
184
|
}
|
180
185
|
}
|
181
186
|
end
|
@@ -319,8 +324,14 @@ module Searchkick
|
|
319
324
|
status_code = e.message[1..3].to_i
|
320
325
|
if status_code == 404
|
321
326
|
raise "Index missing - run #{searchkick_klass.name}.reindex"
|
322
|
-
elsif status_code == 500 and (
|
323
|
-
|
327
|
+
elsif status_code == 500 and (
|
328
|
+
e.message.include?("IllegalArgumentException[minimumSimilarity >= 1]") or
|
329
|
+
e.message.include?("No query registered for [multi_match]") or
|
330
|
+
e.message.include?("[match] query does not support [cutoff_frequency]]") or
|
331
|
+
e.message.include?("No query registered for [function_score]]")
|
332
|
+
)
|
333
|
+
|
334
|
+
raise "This version of Searchkick requires Elasticsearch 0.90.4 or greater"
|
324
335
|
else
|
325
336
|
raise e
|
326
337
|
end
|
data/lib/searchkick/version.rb
CHANGED
data/searchkick.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "activemodel"
|
22
|
-
spec.add_dependency "elasticsearch", "
|
22
|
+
spec.add_dependency "elasticsearch", ">= 1.0.0"
|
23
23
|
spec.add_dependency "hashie"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
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: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: elasticsearch
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 1.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 1.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: hashie
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|