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