arelastic 2.1.4 → 2.2.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/lib/arelastic/aggregations/aggregation.rb +7 -6
- data/lib/arelastic/aggregations/bucket.rb +1 -5
- data/lib/arelastic/aggregations/date_histogram.rb +1 -1
- data/lib/arelastic/aggregations/filter.rb +1 -1
- data/lib/arelastic/aggregations/histogram.rb +9 -0
- data/lib/arelastic/aggregations/nested.rb +1 -1
- data/lib/arelastic/aggregations/reverse_nested.rb +1 -1
- data/lib/arelastic/aggregations/sampler.rb +4 -2
- data/lib/arelastic/aggregations/terms.rb +1 -1
- data/lib/arelastic/builders/aggregation.rb +14 -2
- data/test/arelastic/aggregations/aggregation_test.rb +13 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eecf4e946c5a80dbd67b631bc501c709f7f675a5cdf361fd1ca70720316e988f
|
4
|
+
data.tar.gz: 8cdb5255aabd05b3cebfbdaa2b14ee4bda3ed92f35165a6d6d263b823b1b6e79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7be8e99832a66885f1a073b6001dc845d7a9ce1908376c9b4ca367715a18fc0353b89e7122a4c2e2e001322ad37fd25677396ebbd05af796e23b79a54f765a48
|
7
|
+
data.tar.gz: 57dcd466e35b9531536dd3b9e6ec12e039f7843ae98faa19b0f1fdc342ae22ef8996afb537555ee85af6f77ba4bd58436e68bcf766d81903c2c28e166e351b15
|
@@ -1,15 +1,20 @@
|
|
1
1
|
module Arelastic
|
2
2
|
module Aggregations
|
3
3
|
class Aggregation < Arelastic::Nodes::Node
|
4
|
-
attr_accessor :name, :options
|
4
|
+
attr_accessor :name, :meta, :options
|
5
5
|
|
6
6
|
def initialize(name, options = {})
|
7
7
|
@name = name
|
8
|
+
|
9
|
+
options = options.dup
|
10
|
+
@meta = read_option! options, 'meta'
|
8
11
|
@options = options
|
9
12
|
end
|
10
13
|
|
11
14
|
def as_elastic
|
12
|
-
|
15
|
+
params = as_elastic_aggregation
|
16
|
+
params['meta'] = meta if meta
|
17
|
+
{name => params}
|
13
18
|
end
|
14
19
|
|
15
20
|
def nested(path)
|
@@ -19,10 +24,6 @@ module Arelastic
|
|
19
24
|
def reverse_nested(path = nil)
|
20
25
|
Arelastic::Aggregations::ReverseNested.new(name, path, [self])
|
21
26
|
end
|
22
|
-
|
23
|
-
def as_elastic_aggregation
|
24
|
-
raise 'not implemented'
|
25
|
-
end
|
26
27
|
end
|
27
28
|
end
|
28
29
|
end
|
@@ -9,11 +9,7 @@ module Arelastic
|
|
9
9
|
super(name, options)
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
{name => as_elastic_aggregation.merge(sub_aggregations_as_elastic)}
|
14
|
-
end
|
15
|
-
|
16
|
-
def sub_aggregations_as_elastic
|
12
|
+
def as_elastic_aggregation
|
17
13
|
if aggs
|
18
14
|
{'aggs' => Arelastic::Nodes::HashGroup.new(aggs).as_elastic}
|
19
15
|
else
|
@@ -1,12 +1,14 @@
|
|
1
1
|
module Arelastic
|
2
2
|
module Aggregations
|
3
3
|
class Sampler < Bucket
|
4
|
+
attr_accessor :shard_size
|
4
5
|
def initialize(name, shard_size, aggs)
|
5
|
-
super(name, aggs: aggs
|
6
|
+
super(name, aggs: aggs)
|
7
|
+
@shard_size = shard_size
|
6
8
|
end
|
7
9
|
|
8
10
|
def as_elastic_aggregation
|
9
|
-
{
|
11
|
+
{'sampler' => { 'shard_size' => shard_size}}.merge(super)
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
@@ -7,13 +7,25 @@ module Arelastic
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
Arelastic::Aggregations::
|
10
|
+
def date_histogram options
|
11
|
+
Arelastic::Aggregations::DateHistogram.new name, options
|
12
|
+
end
|
13
|
+
|
14
|
+
def filter filter, options
|
15
|
+
Arelastic::Aggregations::Filter.new name, filter, options
|
12
16
|
end
|
13
17
|
|
14
18
|
def histogram options
|
15
19
|
Arelastic::Aggregations::Histogram.new name, options
|
16
20
|
end
|
21
|
+
|
22
|
+
def sample shard_size, aggs
|
23
|
+
Arelastic::Aggregations::Sampler.new(name, sample_size, aggs)
|
24
|
+
end
|
25
|
+
|
26
|
+
def terms options = {}
|
27
|
+
Arelastic::Aggregations::Terms.new(name, options)
|
28
|
+
end
|
17
29
|
end
|
18
30
|
end
|
19
31
|
end
|
@@ -11,7 +11,19 @@ class Arelastic::Aggregations::AggregationTest < Minitest::Test
|
|
11
11
|
def test_reverse_nested
|
12
12
|
aggregation = Arelastic::Aggregations::Min.new('smallest', 'field' => 'pets.weight').reverse_nested('pets')
|
13
13
|
|
14
|
-
expected = Arelastic::Aggregations::ReverseNested.new('smallest', 'pets', [aggregation])
|
14
|
+
expected = Arelastic::Aggregations::ReverseNested.new('smallest', 'pets', [aggregation])
|
15
15
|
assert_equal expected, aggregation.reverse_nested('pets')
|
16
16
|
end
|
17
|
+
|
18
|
+
def test_meta
|
19
|
+
aggregation = Arelastic::Aggregations::Min.new('smallest', 'field' => 'pets.weight', 'meta' => {'color' => 'blue'})
|
20
|
+
|
21
|
+
expected = {
|
22
|
+
"smallest" => {
|
23
|
+
"min" => {"field" => "pets.weight"},
|
24
|
+
"meta" => {"color" => "blue"}
|
25
|
+
},
|
26
|
+
}
|
27
|
+
assert_equal expected, aggregation.as_elastic
|
28
|
+
end
|
17
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arelastic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Higgins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Build Elastic Search queries with objects
|
14
14
|
email: developer@matthewhiggins.com
|