es_query_builder 2.0.0 → 2.0.1
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/aggregations/buckets/date_histogram_aggregation_builder.rb +64 -0
- data/lib/aggregations/buckets/date_range_aggregation_builder.rb +25 -0
- data/lib/aggregations/buckets/filter_aggregation_builder.rb +30 -0
- data/lib/aggregations/buckets/filters_aggregation_builder.rb +32 -0
- data/lib/aggregations/buckets/geo_grid_aggregation_builder.rb +50 -0
- data/lib/aggregations/buckets/histogram_aggregation_builder.rb +63 -0
- data/lib/aggregations/buckets/nested_aggregation_builder.rb +33 -0
- data/lib/aggregations/buckets/range_aggregation_builder.rb +25 -0
- data/lib/aggregations/buckets/reverse_nested_aggregation_builder.rb +23 -0
- data/lib/aggregations/buckets/terms_aggregation_builder.rb +87 -0
- data/lib/aggregations/buckets/top_hits_aggregation_builder.rb +78 -0
- data/lib/aggregations/helpers/abstract_aggregation_helper.rb +37 -0
- data/lib/aggregations/helpers/abstract_range_helper.rb +40 -0
- data/lib/aggregations/helpers/aggregation_query_builder_helper.rb +61 -0
- data/lib/aggregations/helpers/values_source_aggregation_helper.rb +53 -0
- data/lib/aggregations/metrics/avg_aggregation_builder.rb +24 -0
- data/lib/aggregations/metrics/max_aggregation_builder.rb +24 -0
- data/lib/aggregations/metrics/min_aggregation_builder.rb +24 -0
- data/lib/enums/combine_functions.rb +54 -0
- data/lib/enums/distance_types.rb +36 -0
- data/lib/enums/distance_units.rb +71 -0
- data/lib/enums/fuzziness.rb +56 -0
- data/lib/enums/orders.rb +17 -0
- data/lib/enums/score_modes.rb +54 -0
- data/lib/enums/script_sort_types.rb +32 -0
- data/lib/enums/script_types.rb +19 -0
- data/lib/enums/shape_relations.rb +47 -0
- data/lib/enums/sort_modes.rb +59 -0
- data/lib/enums/sort_orders.rb +33 -0
- data/lib/enums/validation_methods.rb +44 -0
- data/lib/enums/zero_terms_query.rb +37 -0
- data/lib/function_scores/random_score_function_builder.rb +53 -0
- data/lib/function_scores/score_function_builder.rb +19 -0
- data/lib/function_scores/script_score_function_builder.rb +30 -0
- data/lib/function_scores/weighted_score_function_builder.rb +38 -0
- data/lib/misc/bucket_order.rb +33 -0
- data/lib/misc/geo_point.rb +64 -0
- data/lib/misc/range.rb +44 -0
- data/lib/misc/script.rb +62 -0
- data/lib/misc/terms_lookup.rb +45 -0
- data/lib/queries/abstract_query_builder.rb +31 -0
- data/lib/queries/base_query_builder.rb +27 -0
- data/lib/queries/bool_query_builder.rb +148 -0
- data/lib/queries/constant_score_query_builder.rb +32 -0
- data/lib/queries/dis_max_query_builder.rb +70 -0
- data/lib/queries/exists_query_builder.rb +32 -0
- data/lib/queries/function_score_query_builder.rb +170 -0
- data/lib/queries/geo_distance_query_builder.rb +126 -0
- data/lib/queries/match_all_query_builder.rb +16 -0
- data/lib/queries/match_query_builder.rb +181 -0
- data/lib/queries/nested_query_builder.rb +55 -0
- data/lib/queries/nested_sort_query_builder.rb +44 -0
- data/lib/queries/query_builder.rb +33 -0
- data/lib/queries/range_query_builder.rb +153 -0
- data/lib/queries/term_query_builder.rb +44 -0
- data/lib/queries/terms_query_builder.rb +54 -0
- data/lib/sort/abstract_sort_builder.rb +15 -0
- data/lib/sort/field_sort_builder.rb +70 -0
- data/lib/sort/geo_distance_sort_builder.rb +120 -0
- data/lib/sort/nested_sort_builder.rb +68 -0
- data/lib/sort/score_sort_builder.rb +16 -0
- data/lib/sort/script_sort_builder.rb +83 -0
- data/lib/sort/sort_builder.rb +28 -0
- metadata +64 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b54cfe548503ada7c54cac8d2db2920b8be4d04a
|
4
|
+
data.tar.gz: 89c70a333a949c9acdcaf4e6237af654afb83011
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89166f0334347f0324fc7acc6a6b076fe2f325822d2c1756fb16406bb5666006905f643c88798ad06a3d03debea28b4e62252ffc51f81bc862485952faa14386
|
7
|
+
data.tar.gz: bbef83c0007a5204e9acba4cc2485b560a138a96d3ff5c4aed7e508552e1071fc7b697fa503f364287a775794525a4e3d59de8dfb57cc7000674ee1b9e93d383
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Date Histogram Aggregation
|
4
|
+
class DateHistogramAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::ValuesSourceAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
8
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
9
|
+
include ::AttributesReader
|
10
|
+
|
11
|
+
ATTRIBUTES = [:order, :calendar_interval, :min_doc_count]
|
12
|
+
|
13
|
+
# @param [String] name : Aggregation name
|
14
|
+
def initialize name:
|
15
|
+
@name = name.intern
|
16
|
+
@type = :date_histogram
|
17
|
+
@query = {
|
18
|
+
@name => {
|
19
|
+
@type => {}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
# @param [Misc::BucketOrder] bucket_order
|
25
|
+
# @return [DateHistogramAggregationBuilder], can be chained for ordering on multiple fields.
|
26
|
+
def add_order bucket_order
|
27
|
+
@order ||= []
|
28
|
+
@order << bucket_order.settings
|
29
|
+
self
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [Array]
|
33
|
+
def order_expr
|
34
|
+
@order
|
35
|
+
end
|
36
|
+
|
37
|
+
# @param [String] interval
|
38
|
+
# @return [DateHistogramAggregationBuilder]
|
39
|
+
def calendar_interval interval
|
40
|
+
@calendar_interval = interval
|
41
|
+
self
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [String]
|
45
|
+
def calendar_interval_expr
|
46
|
+
@calendar_interval
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [Integer] doc_count
|
50
|
+
# @return [DateHistogramAggregationBuilder]
|
51
|
+
def min_doc_count doc_count
|
52
|
+
@min_doc_count = doc_count
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Integer]
|
57
|
+
def min_doc_count_expr
|
58
|
+
@min_doc_count
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Date Range Aggregation
|
4
|
+
class DateRangeAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::ValuesSourceAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
8
|
+
include ::Aggregations::Helpers::AbstractRangeHelper
|
9
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
10
|
+
include ::AttributesReader
|
11
|
+
|
12
|
+
# @param [String] name : Aggregation name
|
13
|
+
def initialize name:
|
14
|
+
@name = name.intern
|
15
|
+
@type = :date_range
|
16
|
+
@query = {
|
17
|
+
@name => {
|
18
|
+
@type => {}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Filter Aggregation
|
4
|
+
class FilterAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
8
|
+
include ::AttributesReader
|
9
|
+
|
10
|
+
# @param [String] name : Aggregation name
|
11
|
+
# @param [Queries::QueryBuilder] filter
|
12
|
+
def initialize name:, filter:
|
13
|
+
@name = name.intern
|
14
|
+
@type = :filter
|
15
|
+
@filter = filter
|
16
|
+
@query = {
|
17
|
+
@name => {
|
18
|
+
@type => @filter
|
19
|
+
}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [Queries::QueryBuilder]
|
24
|
+
def filter_expr
|
25
|
+
@filter
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Filter Aggregation
|
4
|
+
class FiltersAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
8
|
+
include ::AttributesReader
|
9
|
+
|
10
|
+
# @param [String] name : Aggregation name
|
11
|
+
# @param [Queries::QueryBuilder] filter
|
12
|
+
def initialize name:, filters:
|
13
|
+
@name = name.intern
|
14
|
+
@type = :filters
|
15
|
+
@filters = filters
|
16
|
+
@query = {
|
17
|
+
@name => {
|
18
|
+
@type => {
|
19
|
+
@type => @filters
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Queries::QueryBuilder]
|
26
|
+
def filters_expr
|
27
|
+
@filters
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch GeoHash grid Aggregation
|
4
|
+
class GeoGridAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::ValuesSourceAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
8
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
9
|
+
include ::AttributesReader
|
10
|
+
|
11
|
+
ATTRIBUTES = [:size, :precision]
|
12
|
+
|
13
|
+
# @param [String] name : Aggregation name
|
14
|
+
def initialize name:
|
15
|
+
@name = name.intern
|
16
|
+
@type = :geohash_grid
|
17
|
+
@query = {
|
18
|
+
@name => {
|
19
|
+
@type => {}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
# @param [Integer] size
|
25
|
+
# @return [GeoGridAggregationBuilder]
|
26
|
+
def size size
|
27
|
+
@size = size
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [Integer]
|
32
|
+
def size_expr
|
33
|
+
@size
|
34
|
+
end
|
35
|
+
|
36
|
+
# @param [Integer] precision
|
37
|
+
# @return [GeoGridAggregationBuilder]
|
38
|
+
def precision precision
|
39
|
+
@precision = precision
|
40
|
+
self
|
41
|
+
end
|
42
|
+
|
43
|
+
# @return [Integer]
|
44
|
+
def precision_expr
|
45
|
+
@precision
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Histogram Aggregation
|
4
|
+
class HistogramAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::ValuesSourceAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
8
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
9
|
+
include ::AttributesReader
|
10
|
+
|
11
|
+
ATTRIBUTES = [:order, :interval, :min_doc_count]
|
12
|
+
|
13
|
+
# @param [String] name : Aggregation name
|
14
|
+
def initialize name:
|
15
|
+
@name = name.intern
|
16
|
+
@type = :histogram
|
17
|
+
@query = {
|
18
|
+
@name => {
|
19
|
+
@type => {}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
# @param [Misc::BucketOrder] bucket_order
|
25
|
+
# @return [HistogramAggregationBuilder], can be chained for ordering on multiple fields.
|
26
|
+
def add_order bucket_order
|
27
|
+
@order ||= []
|
28
|
+
@order << bucket_order.settings
|
29
|
+
self
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [Array]
|
33
|
+
def order_expr
|
34
|
+
@order
|
35
|
+
end
|
36
|
+
|
37
|
+
# @param [String] interval
|
38
|
+
# @return [HistogramAggregationBuilder]
|
39
|
+
def interval interval
|
40
|
+
@interval = interval
|
41
|
+
self
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [String]
|
45
|
+
def interval_expr
|
46
|
+
@interval
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [Integer] doc_count
|
50
|
+
# @return [HistogramAggregationBuilder]
|
51
|
+
def min_doc_count doc_count
|
52
|
+
@min_doc_count = doc_count
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Integer]
|
57
|
+
def min_doc_count_expr
|
58
|
+
@min_doc_count
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Nested Aggregation
|
4
|
+
class NestedAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
8
|
+
include ::AttributesReader
|
9
|
+
|
10
|
+
# @param [String] name : Aggregation name
|
11
|
+
# @param [String] path
|
12
|
+
def initialize name:, path:
|
13
|
+
@name = name.intern
|
14
|
+
@type = :nested
|
15
|
+
@path = path
|
16
|
+
@query = {
|
17
|
+
@name => {
|
18
|
+
@type => {
|
19
|
+
:path => path
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [String]
|
26
|
+
def path_expr
|
27
|
+
@path
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Range Aggregation
|
4
|
+
class RangeAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::ValuesSourceAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
8
|
+
include ::Aggregations::Helpers::AbstractRangeHelper
|
9
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
10
|
+
include ::AttributesReader
|
11
|
+
|
12
|
+
# @param [String] name : Aggregation name
|
13
|
+
def initialize name:
|
14
|
+
@name = name.intern
|
15
|
+
@type = :range
|
16
|
+
@query = {
|
17
|
+
@name => {
|
18
|
+
@type => {}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Reverse Nested Aggregation
|
4
|
+
class ReverseNestedAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
8
|
+
include ::AttributesReader
|
9
|
+
|
10
|
+
# @param [String] name : Aggregation name
|
11
|
+
def initialize name:
|
12
|
+
@name = name.intern
|
13
|
+
@type = :reverse_nested
|
14
|
+
@query = {
|
15
|
+
@name => {
|
16
|
+
@type => {}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module Aggregations
|
2
|
+
module Buckets
|
3
|
+
# Elasticsearch Terms Aggregation
|
4
|
+
class TermsAggregationBuilder
|
5
|
+
|
6
|
+
include ::Aggregations::Helpers::ValuesSourceAggregationHelper
|
7
|
+
include ::Aggregations::Helpers::AbstractAggregationHelper
|
8
|
+
include ::Aggregations::Helpers::AggregationQueryBuilderHelper
|
9
|
+
include ::AttributesReader
|
10
|
+
|
11
|
+
ATTRIBUTES = [:size, :order, :include, :exclude, :min_doc_count]
|
12
|
+
|
13
|
+
# @param [String] name : Aggregation name
|
14
|
+
def initialize name:
|
15
|
+
@name = name.intern
|
16
|
+
@type = :terms
|
17
|
+
@query = {
|
18
|
+
@name => {
|
19
|
+
@type => {}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
# @param [Integer] size
|
25
|
+
# @return [TermsAggregationBuilder]
|
26
|
+
def size size
|
27
|
+
@size = size
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [Integer]
|
32
|
+
def size_expr
|
33
|
+
@size
|
34
|
+
end
|
35
|
+
|
36
|
+
# @param [Misc::BucketOrder] bucket_order
|
37
|
+
# @return [TermsAggregationBuilder], can be chained for ordering on multiple fields.
|
38
|
+
def add_order bucket_order
|
39
|
+
@order ||= []
|
40
|
+
@order << bucket_order
|
41
|
+
self
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [Array]
|
45
|
+
def order_expr
|
46
|
+
@order
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [Array] include list
|
50
|
+
# @return [TermsAggregationBuilder]
|
51
|
+
def include include_list
|
52
|
+
@include = include_list
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Array]
|
57
|
+
def include_expr
|
58
|
+
@include
|
59
|
+
end
|
60
|
+
|
61
|
+
# @param [Array] exclude list
|
62
|
+
# @return [TermsAggregationBuilder]
|
63
|
+
def exclude exclude_list
|
64
|
+
@exclude = exclude_list
|
65
|
+
self
|
66
|
+
end
|
67
|
+
|
68
|
+
# @return [Array]
|
69
|
+
def exclude_expr
|
70
|
+
@exclude
|
71
|
+
end
|
72
|
+
|
73
|
+
# @param [Integer] min doc count
|
74
|
+
# @return [TermsAggregationBuilder]
|
75
|
+
def min_doc_count doc_count
|
76
|
+
@min_doc_count = doc_count
|
77
|
+
self
|
78
|
+
end
|
79
|
+
|
80
|
+
# @return [Integer]
|
81
|
+
def min_doc_count_expr
|
82
|
+
@min_doc_count
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|