stretchy 0.7.0 → 0.8.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
- SHA1:
3
- metadata.gz: 12bb7b9359e948fc32ff9d27f45544220ea82066
4
- data.tar.gz: 43608164105614fbc8b5165eea18cf0fd9ddc855
2
+ SHA256:
3
+ metadata.gz: 76d1eeb5c2be5aad546eed305e53d83ea4c64dd9c61e9b40a64ec0246de6c4cf
4
+ data.tar.gz: 4a6ddb55f798e90fde4ce5a1a5cb2b39559ca0eb2b5f9f92f353b0c108dfe224
5
5
  SHA512:
6
- metadata.gz: dc23211b16ca77b169658edebae3f3fb502b0d7f9279c6c6ff2349e989b93c58c12306c47383f3da629536d72e0de5d079b1e3673c2820187b160f1b54532a54
7
- data.tar.gz: 0f485ba770bf7c9334fad83a62a0be88407d355da989421564c9af37b8acd14395037da2e50b286b5b3806129f0a2ea95b8bf765470cbac0b08d8da27334028b
6
+ metadata.gz: 58dd985f4bdee6edd189c6b5235d2cb59dd96a79c479fae3abae7f88a087f10c383e4c4eb183090c49c9619b2bc5dddad5ad8fdc6f80efc6a507be1dd8de609f
7
+ data.tar.gz: 055776e2bfb69e791c631df6576ed33c76337d74e64720c9ec86e8e79500248d2c37f2104f820aa32c978ee4ee6280dbfc5a9f54c8cfa809465456ee9401c97a
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.3
1
+ 2.4.2
data/README.md CHANGED
@@ -52,7 +52,7 @@ Stretchy.client = Elasticsearch::Client.new
52
52
 
53
53
  ```ruby
54
54
  # returns a Stretchy::API object
55
- api = Stretchy.query(index: 'myapp_development', type: 'model_name')
55
+ api = Stretchy.query(index: 'myapp_development')
56
56
  ```
57
57
 
58
58
  From here, you can chain the methods to build your desired query.
data/Rakefile CHANGED
@@ -13,8 +13,8 @@ namespace :fixtures do
13
13
  task :gen do
14
14
  require 'json'
15
15
 
16
- q = Stretchy.query(index: 'stretchy_test', type: 'game_dev')
17
- .match(_all: 'game')
16
+ q = Stretchy.query(index: 'stretchy_test')
17
+ .multi_match(query: 'game')
18
18
  .where(url_slug: [
19
19
  'masahiro-sakurai',
20
20
  'tetsuya-mizuguchi',
@@ -94,7 +94,11 @@ module Stretchy
94
94
  when Hash
95
95
  nested(val, field, context)
96
96
  else
97
- Node.new({match: {field => val}}, context)
97
+ if field == '_all'
98
+ Node.new({multi_match: {:query => val}}, context)
99
+ else
100
+ Node.new({match: {field => val}}, context)
101
+ end
98
102
  end
99
103
  end
100
104
  end
@@ -133,18 +137,16 @@ module Stretchy
133
137
  def fulltext_nodes_from_string(params, context = default_context)
134
138
  subcontext = context.merge(query: true)
135
139
  nodes = [raw_node({
136
- match: {
137
- _all: {
140
+ multi_match: {
138
141
  query: params,
139
142
  minimum_should_match: 1
140
143
  }
141
- }
142
144
  }, subcontext)]
143
145
 
144
146
  subcontext = subcontext.merge(should: true)
145
147
  nodes << Factory.raw_node({
146
148
  match_phrase: {
147
- _all: {
149
+ multi_match: {
148
150
  query: params,
149
151
  slop: DEFAULT_SLOP
150
152
  }
@@ -180,7 +182,7 @@ module Stretchy
180
182
 
181
183
  # https://www.elastic.co/guide/en/elasticsearch/reference/current/querydslfunctionscorequery.html#functionrandom
182
184
  def random_score_function_node(params, context = default_context)
183
- json = {random_score: {seed: params[:seed]}}
185
+ json = {random_score: {seed: params[:seed], field: :id}}
184
186
  json[:weight] = params[:weight] if params[:weight]
185
187
  Node.new(json, context)
186
188
  end
@@ -1,3 +1,4 @@
1
+ require 'json'
1
2
  module Stretchy
2
3
  class Results
3
4
 
@@ -12,7 +13,10 @@ module Stretchy
12
13
  def self.fake
13
14
  self.new(
14
15
  {size: API::DEFAULT_PER_PAGE, fake: true},
15
- {'hits' => {'total' => 0, 'hits' => [], 'aggregations' => {}}}
16
+ {'hits' => {'total' => {
17
+ "value" => 3,
18
+ "relation" => "eq"
19
+ }, 'hits' => [], 'aggregations' => {}}}
16
20
  )
17
21
  end
18
22
 
@@ -43,7 +47,7 @@ module Stretchy
43
47
  end
44
48
 
45
49
  def total
46
- response['hits']['total']
50
+ response['hits']['total']['value']
47
51
  end
48
52
  alias :total_count :total
49
53
  alias :count :total
@@ -1,3 +1,3 @@
1
1
  module Stretchy
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
data/lib/stretchy.rb CHANGED
@@ -58,7 +58,7 @@ module Stretchy
58
58
  end
59
59
 
60
60
  def index_document(params = {})
61
- Utils.require_params!(:index_document, params, :index, :type, :body)
61
+ Utils.require_params!(:index_document, params, :index, :body)
62
62
 
63
63
  raise IndexDoesNotExistError.new(
64
64
  "index #{params[:index]} does not exist"
data/solano.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
- ruby_version: ruby-2.2.3
3
- bundler_version: 1.13.7
2
+ ruby_version: ruby-2.4.2
3
+ bundler_version: 1.14.6
4
4
  test_pattern:
5
5
  - spec/**/*_spec.rb
6
6
  elasticsearch:
data/stretchy.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "elasticsearch", "~> 5.0"
22
+ spec.add_dependency "elasticsearch", "~> 7.0"
23
23
  spec.add_dependency "excon", "~> 0.45"
24
24
 
25
25
  spec.add_development_dependency "rake", "~> 10.4"
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "fuubar", "~> 2.0"
28
28
  spec.add_development_dependency "pry", "~> 0.10"
29
29
  spec.add_development_dependency "awesome_print", "~> 1.6"
30
- spec.add_development_dependency "yard", "~> 0.8"
30
+ spec.add_development_dependency "yard", "~> 0.9"
31
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stretchy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - agius
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-09 00:00:00.000000000 Z
11
+ date: 2021-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: elasticsearch
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '7.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.0'
26
+ version: '7.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: excon
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0.8'
117
+ version: '0.9'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0.8'
124
+ version: '0.9'
125
125
  description: Build queries for Elasticsearch with a chainable interface like ActiveRecord's.
126
126
  email:
127
127
  - andrew@atevans.com
@@ -174,8 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []
177
- rubyforge_project:
178
- rubygems_version: 2.5.2
177
+ rubygems_version: 3.0.3
179
178
  signing_key:
180
179
  specification_version: 4
181
180
  summary: Query builder for Elasticsearch