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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aggregations/buckets/date_histogram_aggregation_builder.rb +64 -0
  3. data/lib/aggregations/buckets/date_range_aggregation_builder.rb +25 -0
  4. data/lib/aggregations/buckets/filter_aggregation_builder.rb +30 -0
  5. data/lib/aggregations/buckets/filters_aggregation_builder.rb +32 -0
  6. data/lib/aggregations/buckets/geo_grid_aggregation_builder.rb +50 -0
  7. data/lib/aggregations/buckets/histogram_aggregation_builder.rb +63 -0
  8. data/lib/aggregations/buckets/nested_aggregation_builder.rb +33 -0
  9. data/lib/aggregations/buckets/range_aggregation_builder.rb +25 -0
  10. data/lib/aggregations/buckets/reverse_nested_aggregation_builder.rb +23 -0
  11. data/lib/aggregations/buckets/terms_aggregation_builder.rb +87 -0
  12. data/lib/aggregations/buckets/top_hits_aggregation_builder.rb +78 -0
  13. data/lib/aggregations/helpers/abstract_aggregation_helper.rb +37 -0
  14. data/lib/aggregations/helpers/abstract_range_helper.rb +40 -0
  15. data/lib/aggregations/helpers/aggregation_query_builder_helper.rb +61 -0
  16. data/lib/aggregations/helpers/values_source_aggregation_helper.rb +53 -0
  17. data/lib/aggregations/metrics/avg_aggregation_builder.rb +24 -0
  18. data/lib/aggregations/metrics/max_aggregation_builder.rb +24 -0
  19. data/lib/aggregations/metrics/min_aggregation_builder.rb +24 -0
  20. data/lib/enums/combine_functions.rb +54 -0
  21. data/lib/enums/distance_types.rb +36 -0
  22. data/lib/enums/distance_units.rb +71 -0
  23. data/lib/enums/fuzziness.rb +56 -0
  24. data/lib/enums/orders.rb +17 -0
  25. data/lib/enums/score_modes.rb +54 -0
  26. data/lib/enums/script_sort_types.rb +32 -0
  27. data/lib/enums/script_types.rb +19 -0
  28. data/lib/enums/shape_relations.rb +47 -0
  29. data/lib/enums/sort_modes.rb +59 -0
  30. data/lib/enums/sort_orders.rb +33 -0
  31. data/lib/enums/validation_methods.rb +44 -0
  32. data/lib/enums/zero_terms_query.rb +37 -0
  33. data/lib/function_scores/random_score_function_builder.rb +53 -0
  34. data/lib/function_scores/score_function_builder.rb +19 -0
  35. data/lib/function_scores/script_score_function_builder.rb +30 -0
  36. data/lib/function_scores/weighted_score_function_builder.rb +38 -0
  37. data/lib/misc/bucket_order.rb +33 -0
  38. data/lib/misc/geo_point.rb +64 -0
  39. data/lib/misc/range.rb +44 -0
  40. data/lib/misc/script.rb +62 -0
  41. data/lib/misc/terms_lookup.rb +45 -0
  42. data/lib/queries/abstract_query_builder.rb +31 -0
  43. data/lib/queries/base_query_builder.rb +27 -0
  44. data/lib/queries/bool_query_builder.rb +148 -0
  45. data/lib/queries/constant_score_query_builder.rb +32 -0
  46. data/lib/queries/dis_max_query_builder.rb +70 -0
  47. data/lib/queries/exists_query_builder.rb +32 -0
  48. data/lib/queries/function_score_query_builder.rb +170 -0
  49. data/lib/queries/geo_distance_query_builder.rb +126 -0
  50. data/lib/queries/match_all_query_builder.rb +16 -0
  51. data/lib/queries/match_query_builder.rb +181 -0
  52. data/lib/queries/nested_query_builder.rb +55 -0
  53. data/lib/queries/nested_sort_query_builder.rb +44 -0
  54. data/lib/queries/query_builder.rb +33 -0
  55. data/lib/queries/range_query_builder.rb +153 -0
  56. data/lib/queries/term_query_builder.rb +44 -0
  57. data/lib/queries/terms_query_builder.rb +54 -0
  58. data/lib/sort/abstract_sort_builder.rb +15 -0
  59. data/lib/sort/field_sort_builder.rb +70 -0
  60. data/lib/sort/geo_distance_sort_builder.rb +120 -0
  61. data/lib/sort/nested_sort_builder.rb +68 -0
  62. data/lib/sort/score_sort_builder.rb +16 -0
  63. data/lib/sort/script_sort_builder.rb +83 -0
  64. data/lib/sort/sort_builder.rb +28 -0
  65. metadata +64 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 476bcc5f9cc581265e2a05f04d04762f43d022b3
4
- data.tar.gz: 10434493e8ff90f36a1ac52cfdba78686d15d9d8
3
+ metadata.gz: b54cfe548503ada7c54cac8d2db2920b8be4d04a
4
+ data.tar.gz: 89c70a333a949c9acdcaf4e6237af654afb83011
5
5
  SHA512:
6
- metadata.gz: 3a826034f827ffa7444d9155ddab30ebac685bd3e0bcf756a49a189b90cc6a7c7896211d5025b4cf8a9c5f8d4e90d25b5f8c5daf3b431009c952ee39f2c78ba5
7
- data.tar.gz: 5412d2c7016367ec5af2f74e4de4e70a9846eb46e4b06138e5b326e925602c3b1f237fd5d28d17e9c466d3b31c3c09fc3cf1186733d1ca0ef298be12cd36dc93
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