Initial search service commit
[aai/search-data-service.git] / src / main / java / org / openecomp / sa / searchdbabstraction / searchapi / GroupByAggregation.java
1 /**
2  * ============LICENSE_START=======================================================
3  * Search Data Service
4  * ================================================================================
5  * Copyright © 2017 AT&T Intellectual Property.
6  * Copyright © 2017 Amdocs
7  * All rights reserved.
8  * ================================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License ati
12  *
13  *    http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=========================================================
21  *
22  * ECOMP and OpenECOMP are trademarks
23  * and service marks of AT&T Intellectual Property.
24  */
25 package org.openecomp.sa.searchdbabstraction.searchapi;
26
27 /**
28  * An example of a date_range aggregation:
29  *
30  * <p><pre>
31  * {
32  *    "aggs": {
33  *        "my_group": {
34  *            "term": {
35  *                "field": "group"
36  *            }
37  *        }
38  *    }
39  * }
40  * </pre>
41  *
42  * @author sye
43  */
44 public class GroupByAggregation extends AbstractAggregation {
45
46   @Override
47   public String toElasticSearch() {
48     StringBuilder sb = new StringBuilder();
49
50     sb.append("\"terms\": {\"field\": \"");
51     sb.append(field);
52     sb.append("\"");
53     if (size != null) {
54       sb.append(", \"size\": ");
55       sb.append(size);
56     }
57
58     if (minThreshold != null) {
59       sb.append(", \"min_doc_count\": ").append(minThreshold);
60     }
61
62     sb.append("}");
63
64     return sb.toString();
65   }
66
67   @Override
68   public String toString() {
69     return "{group-by: {field: " + field + ", size: " + size
70         + " minThreshold: " + minThreshold + "}}";
71   }
72
73 }