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

java api2

ELK/elasticsearch2019. 1. 25. 18:45

package com.forest.test;


import java.awt.event.ActionEvent;

import java.io.IOException;

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.concurrent.TimeUnit;


import org.apache.http.HttpHost;

import org.apache.lucene.index.DocValuesType;

import org.elasticsearch.action.DocWriteRequest;

import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;

import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;

import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;

import org.elasticsearch.action.delete.DeleteRequest;

import org.elasticsearch.action.delete.DeleteResponse;

import org.elasticsearch.action.index.IndexRequest;

import org.elasticsearch.action.index.IndexResponse;

import org.elasticsearch.action.search.SearchRequest;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.action.support.master.AcknowledgedResponse;

import org.elasticsearch.client.RequestOptions;

import org.elasticsearch.client.Requests;

import org.elasticsearch.client.RestClient;

import org.elasticsearch.client.RestHighLevelClient;

import org.elasticsearch.client.transport.TransportClient;

import org.elasticsearch.common.settings.Settings;

import org.elasticsearch.common.transport.TransportAddress;

import org.elasticsearch.common.unit.TimeValue;

import org.elasticsearch.common.xcontent.XContentBuilder;

import org.elasticsearch.common.xcontent.XContentFactory;

import org.elasticsearch.common.xcontent.XContentType;

import org.elasticsearch.index.query.QueryBuilders;

import org.elasticsearch.search.SearchHit;

import org.elasticsearch.search.SearchHits;

import org.elasticsearch.search.aggregations.AggregationBuilders;

import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;

import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCount;

import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCountAggregationBuilder;

import org.elasticsearch.search.builder.SearchSourceBuilder;

import org.elasticsearch.transport.client.PreBuiltTransportClient;


public class HighController implements userInfo {

public RestHighLevelClient client = null;

public IndexRequest request = null;

public IndexResponse indexResponse = null;

CreateIndexRequest req = null;

SearchRequest searchRequest = null;

SearchResponse searchResponse = null;

void RestHighSetting() {

client = new RestHighLevelClient( RestClient.builder(

                new HttpHost(IP, PORT, PROTOCOL),

                new HttpHost(IP, PORT, PROTOCOL)));

}

void creatIndex() {

// 인덱스 생성 - version(1)

req = new CreateIndexRequest("today190108");

req.settings(Settings.builder() 

    .put("index.number_of_shards", 3)

    .put("index.number_of_replicas", 2)

);

req.mapping("_doc", 

        "{\n" +

        "  \"_doc\": {\n" +

        "    \"properties\": {\n" +

        "      \"message\": {\n" +

        "        \"type\": \"text\"\n" +

        "      }\n" +

        "    }\n" +

        "  }\n" +

        "}", 

        XContentType.JSON);

try {

client.indices().create(req, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

void vr2CreateIndex(String createIndex) {

// 인덱스 생성 - version (2)

CreateIndexRequest request = new CreateIndexRequest(createIndex);

CreateIndexResponse createIndexResponse = null;

// Index settings

request.settings(Settings.builder()

.put("index.number_of_shards", 3)

.put("index.number_of_replicas", 2));


XContentBuilder builder = null;

try {

builder = XContentFactory.jsonBuilder();

builder.startObject();

{

builder.startObject("doc");

    {

        builder.startObject("properties");

        {

            builder.startObject("name");

            {

                builder.field("type", "text");

            }

            builder.endObject();

            builder.startObject("age");

            {

                builder.field("type", "integer");

            }

            builder.endObject();

        }

        builder.endObject();

    }

    builder.endObject();

}

builder.endObject();

request.mapping("doc", builder);

createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block


e.printStackTrace();


}


}

// aggregation 

public void doAggr() {

RestHighLevelClient client = new RestHighLevelClient(

        RestClient.builder(

                new HttpHost("localhost", 9200, "http"),

                new HttpHost("localhost", 9201, "http")));

// 갯수 count 

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); 

sourceBuilder.query(QueryBuilders.termQuery("user", "kimchy")); 

sourceBuilder.from(0); 

sourceBuilder.size(5); 

sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); 

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices("posts");

searchRequest.source(sourceBuilder);

try {

client.search(searchRequest, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

// TermsAggregationBuilder aggregation = AggregationBuilders.terms("by_company")

//         .field("company.keyword");

// aggregation.subAggregation(AggregationBuilders.cardinality()

// searchSourceBuilder.aggregation(aggregation);

}

// 인덱스 삭제

public void remvIndex() {


DeleteIndexRequest request = new DeleteIndexRequest("twitter");

    AcknowledgedResponse deleteIndexResponse = null;

try {

deleteIndexResponse = client.indices().delete(request, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

void removeDocument() {

// ��� ����

// (1) ������� �ϴ� ��ť��Ʈ

// �ݵ�� "�ε���", "Ÿ��", "id" �ʼ� �Է�

DeleteRequest rmRequest = new DeleteRequest("test", "doc", "WrN6IWgBJDW9es5e6Swy");

DeleteResponse deleteResponse = null;

try {

// (2) ������ ��û

deleteResponse = client.delete(rmRequest, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("test �ε��� ���� �Ϸ�");

}

void doInsert() {

// ������ ���� 

}

void doSearch(String indexTarget) {

// �˻��� �ش��ϴ� api

searchRequest = new SearchRequest(indexTarget);

SearchHits hits = null;

SearchHit[] searchHits = null;

try {

SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

hits = searchResponse.getHits();

searchHits = hits.getHits();

String index = null;

for (SearchHit hit : searchHits) {

index = hit.getIndex();

String sourceAsString = hit.getSourceAsString();

Map<String, Object> sourceAsMap = hit.getSourceAsMap();

System.out.println(sourceAsString);

}

}

void indexDataInsert() {

Map<String, Object> jsonMap = new HashMap<String, Object>();

Map<String, Object> message = new HashMap<String, Object>();

message.put("type", "text");

Map<String, Object> properties = new HashMap<String, Object>();

properties.put("message", message);

Map<String, Object> mapping = new HashMap<String, Object>();

mapping.put("properties", properties);

jsonMap.put("_doc", mapping);

req.mapping("_doc", jsonMap); 


}

void testFunc() {

IndexRequest req = new IndexRequest("kimjunhyeon");

req.id("1");

String jsonString = "{" +

        "\"nu\":\"2\"," +    

        "\"na\":\"trying out Elasticsearch\"" +

        "}";

req.source(jsonString, XContentType.JSON); 


/*

IndexRequest indxReq = Requests.indexRequest("test").type("doc").id("7b9WIWgB5hdWz1dA2pj1");

String jsonString = "{" +

        "\"user\":\"forest\"," +

        "\"postDate\":\"2019-01-23\"," +

        "\"message\":\"trying out Elasticsearch\"" +

        "}";

indxReq.index

indxReq.source(jsonString, XContentType.JSON); 

System.out.println("elasticsearch");

*/

}

// void IndexCreate() {

// request = new IndexRequest("kimjh");

// request.id("1");

// String jsonString = "{" +

//         "\"user\":\"kimjh\"," +

//         "\"postDate\":\"2019-01-22\"," +

//         "\"message\":\"Forest project\"" +

//         "}";

// request.source(jsonString, XContentType.JSON);

// System.out.println("test");

// try {

// indexResponse = client.index(request, RequestOptions.DEFAULT);

// } catch (IOException e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }

// }

}



'ELK > elasticsearch' 카테고리의 다른 글

python + elasticsearch api  (0) 2019.01.29
java api elasticsearch aggregation  (0) 2019.01.28
java api  (0) 2019.01.25
java api _search  (0) 2019.01.25
java elasticsearch api 인덱스 생성  (0) 2019.01.24

java api

ELK/elasticsearch2019. 1. 25. 18:44

package com.forest.test;


import java.io.IOException;

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.nio.charset.Charset;

import java.util.HashMap;

import java.util.Map;

import java.util.concurrent.TimeUnit;


import org.apache.http.HttpHost;

import org.apache.http.ParseException;

import org.apache.http.RequestLine;

import org.apache.http.util.EncodingUtils;

import org.apache.http.util.EntityUtils;

import org.elasticsearch.action.search.SearchRequest;

import org.elasticsearch.action.search.SearchRequestBuilder;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.client.ElasticsearchClient;

import org.elasticsearch.client.Request;

import org.elasticsearch.client.RequestOptions;

import org.elasticsearch.client.Response;

import org.elasticsearch.client.ResponseListener;

import org.elasticsearch.client.RestClient;

import org.elasticsearch.client.RestHighLevelClient;

import org.elasticsearch.client.transport.TransportClient;

import org.elasticsearch.common.settings.Settings;

import org.elasticsearch.common.transport.TransportAddress;

import org.elasticsearch.common.unit.TimeValue;

import org.elasticsearch.index.query.QueryBuilders;

import org.elasticsearch.search.aggregations.AggregationBuilders;

import org.elasticsearch.search.aggregations.metrics.min.MinAggregationBuilder;

import org.elasticsearch.search.builder.SearchSourceBuilder;

//import org.elasticsearch.index.mapper.ObjectMapper;

import org.elasticsearch.transport.client.PreBuiltTransportClient;

import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;


import com.fasterxml.jackson.core.type.TypeReference;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.databind.ObjectMapper.*;

/*

 * java Low Level REST Client 

 * 

 */

public class LowController {

public Response response = null; // ���� 

public Request request = null; // ��û

public RestClient restClient = null;

public RequestLine reqLine = null; // 

public String responseBody = null;

public int statusCode = 0; // ���� �ڵ�

public RestHighLevelClient client = null;

public void RestClientSetting() {

restClient = RestClient.builder(new HttpHost("192.168.2.10", 9200, "http")).build();

}

public void RequestSend(String paramIndex, String command) {

request = new Request("GET", paramIndex + "/" + command);

try {

response = restClient.performRequest(request);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

// search 

public void doAggr() {

RestHighLevelClient client = new RestHighLevelClient(

        RestClient.builder(

                new HttpHost("192.168.0.106", 9200, "http"),

                new HttpHost("192.168.0.106", 9201, "http")));

// 갯수 count 

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); 

sourceBuilder.query(QueryBuilders.termQuery("data", "120")); 

sourceBuilder.from(0); 

sourceBuilder.size(5); 

sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); 

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices("today190108");

searchRequest.source(sourceBuilder);

try {

SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(searchResponse);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public String ReadResponse() {

String retValue = "";

JSONArray jsonArr = null;

JSONParser parser = new JSONParser();

Object obj = null;

// Reading responses

reqLine = response.getRequestLine();

try {

responseBody = EntityUtils.toString(response.getEntity());

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

obj = parser.parse(responseBody);

JSONObject jsonObj = (JSONObject) obj;

JSONObject jsonObjTwo = (JSONObject)jsonObj.get("hits");

JSONArray jsonArray = (JSONArray)jsonObjTwo.get("hits");

for (int i = 0; i < jsonArray.size(); i++) {

JSONObject returnSubject = (JSONObject)jsonArray.get(i);

System.out.println(returnSubject.get("_source").toString());

retValue += returnSubject.get("_source").toString();

retValue += "\n";

}

} catch (org.json.simple.parser.ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return retValue;

}

}



'ELK > elasticsearch' 카테고리의 다른 글

java api elasticsearch aggregation  (0) 2019.01.28
java api2  (0) 2019.01.25
java api _search  (0) 2019.01.25
java elasticsearch api 인덱스 생성  (0) 2019.01.24
Java _ elasticsearch  (0) 2019.01.15

public void doAggr() {

RestHighLevelClient client = new RestHighLevelClient(

        RestClient.builder(

                new HttpHost("192.168.0.106", 9200, "http"),

                new HttpHost("192.168.0.106", 9201, "http")));

// 갯수 count 

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); 

sourceBuilder.query(QueryBuilders.termQuery("data", "120")); 

sourceBuilder.from(0); 

sourceBuilder.size(5); 

sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); 

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices("today190108");

searchRequest.source(sourceBuilder);

try {

SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(searchResponse);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

'ELK > elasticsearch' 카테고리의 다른 글

java api2  (0) 2019.01.25
java api  (0) 2019.01.25
java elasticsearch api 인덱스 생성  (0) 2019.01.24
Java _ elasticsearch  (0) 2019.01.15
임시 - 주말간 정리  (0) 2019.01.08

package com.elastic.apiTwo;


import java.io.IOException;


import org.apache.http.HttpHost;

import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;

import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;

import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;

import org.elasticsearch.action.index.IndexRequest;

import org.elasticsearch.action.index.IndexResponse;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.action.support.master.AcknowledgedResponse;

import org.elasticsearch.client.RequestOptions;

import org.elasticsearch.client.RestClient;

import org.elasticsearch.client.RestHighLevelClient;

import org.elasticsearch.common.settings.Settings;

import org.elasticsearch.common.xcontent.XContentBuilder;

import org.elasticsearch.common.xcontent.XContentFactory;

import org.elasticsearch.common.xcontent.XContentType;


public class stu implements usrInfo {

RestHighLevelClient highClient = null;

@Override

public void restHighLevelClientSetting() {

// TODO Auto-generated method stub

highClient = new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.240.129", 9200, "http")));

}

// 인덱스 삭제

public void remvIndex() {

DeleteIndexRequest request = new DeleteIndexRequest("twitter");

AcknowledgedResponse deleteIndexResponse = null;

try {

deleteIndexResponse = highClient.indices().delete(request, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

// 인덱스 생성

public void makeIndex() {

CreateIndexRequest request = new CreateIndexRequest("twitter");

CreateIndexResponse createIndexResponse = null;

// Index settings

request.settings(Settings.builder()

.put("index.number_of_shards", 3)

.put("index.number_of_replicas", 2));

XContentBuilder builder = null;

try {

builder = XContentFactory.jsonBuilder();

builder.startObject();

{

builder.startObject("doc");

    {

        builder.startObject("properties");

        {

            builder.startObject("name");

            {

                builder.field("type", "text");

            }

            builder.endObject();

            builder.startObject("age");

            {

                builder.field("type", "integer");

            }

            builder.endObject();

        }

        builder.endObject();

    }

    builder.endObject();

}

builder.endObject();

request.mapping("doc", builder);

createIndexResponse = highClient.indices().create(request, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}



'ELK > elasticsearch' 카테고리의 다른 글

java api2  (0) 2019.01.25
java api  (0) 2019.01.25
java api _search  (0) 2019.01.25
Java _ elasticsearch  (0) 2019.01.15
임시 - 주말간 정리  (0) 2019.01.08

package forest;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.action.search.SearchType;

import org.elasticsearch.client.Client;

import org.elasticsearch.common.settings.Settings;

import org.elasticsearch.common.transport.InetSocketTransportAddress;

import org.elasticsearch.index.query.QueryBuilder;

import org.elasticsearch.index.query.QueryBuilders;

import org.elasticsearch.transport.client.PreBuiltTransportClient;

import static org.elasticsearch.index.query.QueryBuilders.*;

import java.net.InetAddress;

import java.net.UnknownHostException;

// =================================================================

/*

*

* @ author ( junhyeon.kim@ezfarm.co.kr )

* @ 

*/

class ElasticNode {

// =================================

// 속성

public Client client;

public SearchResponse response;

// =================================

ElasticNode() {

// 생성자

// TODO Auto-generated constructor stub

try {

this.client = new PreBuiltTransportClient(

Settings.builder().put("client.transport.sniff", true)

                .put("cluster.name","elasticsearch").build()) // 192.168.2.10:9200 으로 cluster.name 확인 

.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.2.10"), 9200));

} catch (UnknownHostException e) {

System.out.println(e.getMessage());

}

}

void Search() {

// 메서드 

this.response = this.client.prepareSearch("tourareacode") // Index

.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)

        .setQuery(QueryBuilders.termQuery("multi", "test"))                 // Query

        .setPostFilter(QueryBuilders.rangeQuery("age").from(12).to(18))     // Filter

        .setFrom(0).setSize(60).setExplain(true)

        .get();

}

}

public class forest_search {

public static void main(String[] args) {

// TODO Auto-generated method stub

ElasticNode enode = new ElasticNode();

enode.Search();

}

}



'ELK > elasticsearch' 카테고리의 다른 글

java api2  (0) 2019.01.25
java api  (0) 2019.01.25
java api _search  (0) 2019.01.25
java elasticsearch api 인덱스 생성  (0) 2019.01.24
임시 - 주말간 정리  (0) 2019.01.08

input {

stdin { codec => json }

}

filter {

mutate {

remove_field => ["@version", "@timestamp", "host"]

}

}

output {

elasticsearch {

hosts => "localhost"

index => today190108

}

}


=====================================================


. aggs : ? 

. cardinality : ?

--------------------------------------------------


POST today190108/_search?size=10

{

  "aggs": {

    "NAME": {

      "cardinality": {

        "field": "data"

      }

    }

  }

}


=====================================================



GET today190108/_search

{

  "size": 0,

  "aggs": {

    "NAME": {

      "filters": {

        "filters": [

          {"match" : { "data" : 10}},

          {"match" : { "data" : 11}}

        ]

      }

    }

  }

}

'ELK > elasticsearch' 카테고리의 다른 글

java api2  (0) 2019.01.25
java api  (0) 2019.01.25
java api _search  (0) 2019.01.25
java elasticsearch api 인덱스 생성  (0) 2019.01.24
Java _ elasticsearch  (0) 2019.01.15