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