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