[Elasticsearch] Aggregation name ?
Elastic/Elasticsearch 2016. 6. 20. 18:09aggregation 을 많이 사용하시는 분들은 잘 아실것 같구요.
그냥 기본만 사용하시는 분들에게는 생소할 수 있어서 그냥 정리해 봤습니다.
참고문서)
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-aggregations.html#_structuring_aggregations
}
여기서 "<aggregation_name>" 에 대한 내용입니다.
이 값은 기본적으로 aggs 수행 후 return 될 때 사용되는 변수명을 지정하게 됩니다.
간혹 aggregation_name 에 field 명을 주시는 경우가 있을 수 있는데요. 안되는 것은 아니지만 해당 변수에 대한 정확한 용도를 알고 사용하시면 더 좋겠다 싶어서 글 남겨 봤습니다.
/**
* Constructs a new aggregation builder.
*
* @param name The aggregation name
* @param type The aggregation type
*/
public AggregationBuilder(String name, Type type) {
if (name == null) {
throw new IllegalArgumentException("[name] must not be null: [" + name + "]");
}
if (type == null) {
throw new IllegalArgumentException("[type] must not be null: [" + name + "]");
}
this.name = name;
this.type = type;
}
...중략...
@Override
public final XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(name);
if (this.metaData != null) {
builder.field("meta", this.metaData);
}
builder.field(type.name());
internalXContent(builder, params);
if (factoriesBuilder != null && (factoriesBuilder.count()) > 0) {
builder.field("aggregations");
factoriesBuilder.toXContent(builder, params);
}
return builder.endObject();
}
소스 코드를 보셔도 아시겠죠?
XContentBuilder 에서 최상위 object name 에 aggregation_name 값을 지정하고 있습니다.
그냥 제가 기억하기 위해 글 남기고 마무리 하겠습니다.