@@ -95,36 +95,20 @@ class Scripted
95
95
96
96
private Scripted First = new Scripted
97
97
{
98
- Language = "painless" ,
99
- Init = "params._agg.map = [:]" ,
100
- Map =
101
- "if (params._agg.map.containsKey(doc['state'].value))" +
102
- " params._agg.map[doc['state'].value] += 1;" +
103
- "else" +
104
- " params._agg.map[doc['state'].value] = 1;" ,
105
-
106
- Reduce =
107
- "def reduce = [:];" +
108
- "for (agg in params._aggs)" +
109
- "{" +
110
- " for (entry in agg.map.entrySet())" +
111
- " {" +
112
- " if (reduce.containsKey(entry.getKey()))" +
113
- " reduce[entry.getKey()] += entry.getValue();" +
114
- " else" +
115
- " reduce[entry.getKey()] = entry.getValue();" +
116
- " }" +
117
- "}" +
118
- "return reduce;"
98
+ Language = "groovy" ,
99
+ Combine = "sum = 0; for (c in _agg.commits) { sum += c }; return sum" ,
100
+ Reduce = "sum = 0; for (a in _aggs) { sum += a }; return sum" ,
101
+ Map = "if (doc['state'].value == \" Stable\" ) { _agg.commits.add(doc['numberOfCommits']) }" ,
102
+ Init = "_agg['commits'] = []"
119
103
} ;
120
104
121
105
private Scripted Second = new Scripted
122
106
{
123
- Language = "painless " ,
124
- Combine = "def sum = 0.0 ; for (c in params. _agg.commits) { sum += c } return sum" ,
125
- Reduce = "def sum = 0.0 ; for (a in params. _aggs) { sum += a } return sum" ,
126
- Map = "if (doc['state'].value == \" Stable\" ) { params. _agg.commits.add(doc['numberOfCommits'].value ) }" ,
127
- Init = "params. _agg. commits = []"
107
+ Language = "groovy " ,
108
+ Combine = "sum = 0; for (c in _agg.commits) { sum += c }; return sum" ,
109
+ Reduce = "sum = 0; for (a in _aggs) { sum += a }; return sum" ,
110
+ Map = "if (doc['state'].value == \" Stable\" ) { _agg.commits.add(doc['numberOfCommits']) }" ,
111
+ Init = "_agg[' commits'] = []"
128
112
} ;
129
113
130
114
public ScriptedMetricMultiAggregationTests ( ReadOnlyCluster i , EndpointUsage usage ) : base ( i , usage ) { }
@@ -147,6 +131,11 @@ public ScriptedMetricMultiAggregationTests(ReadOnlyCluster i, EndpointUsage usag
147
131
inline = First . Map ,
148
132
lang = First . Language
149
133
} ,
134
+ combine_script = new
135
+ {
136
+ inline = First . Combine ,
137
+ lang = First . Language
138
+ } ,
150
139
reduce_script = new
151
140
{
152
141
inline = First . Reduce ,
@@ -188,6 +177,7 @@ public ScriptedMetricMultiAggregationTests(ReadOnlyCluster i, EndpointUsage usag
188
177
. ScriptedMetric ( "by_state_total" , sm => sm
189
178
. InitScript ( ss => ss . Inline ( First . Init ) . Lang ( First . Language ) )
190
179
. MapScript ( ss => ss . Inline ( First . Map ) . Lang ( First . Language ) )
180
+ . CombineScript ( ss => ss . Inline ( First . Combine ) . Lang ( First . Language ) )
191
181
. ReduceScript ( ss => ss . Inline ( First . Reduce ) . Lang ( First . Language ) )
192
182
)
193
183
. ScriptedMetric ( "total_commits" , sm => sm
@@ -206,6 +196,7 @@ public ScriptedMetricMultiAggregationTests(ReadOnlyCluster i, EndpointUsage usag
206
196
{
207
197
InitScript = new InlineScript ( First . Init ) { Lang = First . Language } ,
208
198
MapScript = new InlineScript ( First . Map ) { Lang = First . Language } ,
199
+ CombineScript = new InlineScript ( First . Combine ) { Lang = First . Language } ,
209
200
ReduceScript = new InlineScript ( First . Reduce ) { Lang = First . Language }
210
201
} &&
211
202
new ScriptedMetricAggregation ( "total_commits" )
@@ -226,7 +217,7 @@ protected override void ExpectResponse(ISearchResponse<Project> response)
226
217
by_state_total . Should ( ) . NotBeNull ( ) ;
227
218
total_commits . Should ( ) . NotBeNull ( ) ;
228
219
229
- by_state_total . Value < IDictionary < string , int > > ( ) . Should ( ) . NotBeNull ( ) ;
220
+ by_state_total . Value < double > ( ) . Should ( ) . BeGreaterThan ( 0 ) ;
230
221
total_commits . Value < int > ( ) . Should ( ) . BeGreaterThan ( 0 ) ;
231
222
}
232
223
}
0 commit comments