java api2
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 |