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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e333fde534928a49167a9af2098eeb2aaeae55f
4
- data.tar.gz: c5077e61c89975a0411acf57f9429ce8f946cf34
3
+ metadata.gz: 60615f96360c3f13f09db4893caa5f2cb0b2a4e1
4
+ data.tar.gz: 74809a67cc8c765acae2acebcafd9636b93cdc3b
5
5
  SHA512:
6
- metadata.gz: ac18482615c6a1d5fa4854c17c9e907a507bcea1701f783371a0be657ba848727182a1e2fbd38e547dc675a7545874584cdaa84b861755f99b0d08f7dbda0ca4
7
- data.tar.gz: c1b5edee46e4bf3d6d5ecbc6a425930630cc80ecb2a4034c1c71d39a78ab344f0aadee822d2130e9359ccf247407b44d9a025c5c3db0c04c82a979feaf512020
6
+ metadata.gz: 3975e9b63fbf249f0d2ccb945275c39e426b02606a0a3433feed84f32c7f158b363311fe16ad13c54ac56eccfda9a40901e8d4ac527fd4268ddd8080751f752f
7
+ data.tar.gz: ddc5145efa1ac5c96c72728d42ce6fca5a8609490de52f89a974901b421c698df1d12c15c04cb2e6d84b14b1f672eb2fe08322a8b2b0fc17f147950a16c5a53f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.7.0
2
+
3
+ - Added support for Elasticsearch 1.1
4
+ - Dropped support for Elasticsearch below 0.90.4 (unfortunate side effect of above)
5
+
1
6
  ## 0.6.3
2
7
 
3
8
  - Removed patron since no support for Windows
data/README.md CHANGED
@@ -595,7 +595,7 @@ products = query.execute
595
595
 
596
596
  ## Reference
597
597
 
598
- Searchkick requires Elasticsearch `0.90.0` or higher.
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. Install PostgreSQL and create a database called `searchkick_test` (`psql -d postgres -c "create database searchkick_test"`)
795
- 3. Install Elasticsearch
796
- 4. `bundle`
797
- 5. `rake test`
794
+ 2. `bundle`
795
+ 3. `rake test`
@@ -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
- custom_score: {
124
+ function_score: {
125
+ boost_mode: "replace",
125
126
  query: {
126
127
  match: {
127
128
  query: term
128
129
  }
129
130
  },
130
- script: "doc['count'].value"
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
- script: "log(doc['#{options[:boost]}'].value + 2.718281828)"
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
- boost: 100
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
- boost: 100
174
+ boost_factor: 100
170
175
  }
171
176
  end
172
177
 
173
178
  if custom_filters.any?
174
179
  payload = {
175
- custom_filters_score: {
180
+ function_score: {
181
+ functions: custom_filters,
176
182
  query: payload,
177
- filters: custom_filters,
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 (e.message.include?("IllegalArgumentException[minimumSimilarity >= 1]") or e.message.include?("No query registered for [multi_match]") or e.message.include?("[match] query does not support [cutoff_frequency]]"))
323
- raise "Upgrade Elasticsearch to 0.90.0 or greater"
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
@@ -1,3 +1,3 @@
1
1
  module Searchkick
2
- VERSION = "0.6.3"
2
+ VERSION = "0.7.0"
3
3
  end
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", "~> 0.4.11"
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.6.3
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-09 00:00:00.000000000 Z
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.4.11
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.4.11
40
+ version: 1.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hashie
43
43
  requirement: !ruby/object:Gem::Requirement