java api elasticsearch aggregation
package com.my.test;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.NoNodeAvailableException;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.node.Node;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.metrics.min.Min;
import org.elasticsearch.search.aggregations.metrics.min.MinAggregationBuilder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
public class TransprtClient implements srvSetting{
// ==============================================
public TransportClient client = null; // client
public Settings settings = null;
public SearchResponse sr = null; // search
public Node node = null; // node
// ==============================================
public TransprtClient() {
try {
this.settings = Settings.builder()
.put("cluster.name", "elasticsearch") // clust
.put("client.transport.sniff", true)
.build();
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(IP), PORT));
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// aggregation
// cardinality
public void doAggrCardinality() {
try {
this.sr = client.prepareSearch("tb_frip_tourareacode")
.setQuery(QueryBuilders.matchAllQuery())
.addAggregation(AggregationBuilders.cardinality("testcardinal").field("doc.code"))
.setSize(2)
.get();
System.out.println ("success");
System.out.println (this.sr.toString());
} catch (NoNodeAvailableException e) {
e.printStackTrace();
}
/*
* POST tb_frip_tourareacode/_search?
{
"size":3,
"aggs": {
"type_count": {
"cardinality": {
"field":"doc.name",
"precision_threshold": 100
}
}
}
}
*/
}
// aggregation
// min
public void doAggrMinValue() {
try {
this.sr = client.prepareSearch("tb_frip_tourareacode")
.setQuery(QueryBuilders.matchAllQuery())
.addAggregation(AggregationBuilders.min("minvalue").field("hits.hits._source.code"))
.get();
System.out.println ("success");
System.out.println (this.sr.toString());
} catch (NoNodeAvailableException e) {
e.printStackTrace();
}
}
}
'ELK > elasticsearch' 카테고리의 다른 글
search java api (0) | 2019.01.29 |
---|---|
python + elasticsearch api (0) | 2019.01.29 |
java api2 (0) | 2019.01.25 |
java api (0) | 2019.01.25 |
java api _search (0) | 2019.01.25 |