elasticsearch + java _api + match_all
ELK/elasticsearch2019. 6. 4. 14:52
package com.jh.ela;
import java.io.IOException;
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import static org.elasticsearch.index.query.QueryBuilders.*;
/**
* Builder pattern
* @author ezfarm
*
*/
import com.jh.server.Server;
public class Srcher {
String srchwrd ; // 검색어
Server srvernode;
RestHighLevelClient elanode;
String searchIndex;
int size;
int from;
static public class Builder {
String srchwrd = null;
Server srvernode = null;
RestHighLevelClient elanode = null;
String searchIndex = null;
int size = 0;
int from = 0;
public Builder(String srchwrd) {
// TODO Auto-generated constructor stub
// 검색어
this.srchwrd = srchwrd;
}
/**
* 페이지 설정
* @param size, from
* @return
*/
public Builder withPages (int size, int from) {
// server
this.srvernode = new Server();
// 검색 대상 인덱스
this.searchIndex = this.srvernode.searchIndex;
this.size = size;
this.from = from;
return this;
}
public Srcher build() {
return new Srcher(this);
}
}
public Srcher(Builder builder) {
srchwrd = builder.srchwrd;
srvernode = builder.srvernode;
elanode = builder.srvernode.getElaserver();
searchIndex = builder.searchIndex;
}
/**
* Client node close !!!
*/
public void serverDie() {
try {
elanode.close();
System.out.println("client close !!!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 검색 테스트
public void fullTextSearch() {
/*
* "query" : {
* "size" : 180,
* "match_all": {}
* }
*/
System.out.println("searchIndex => " + searchIndex);
SearchRequest searchRequest = new SearchRequest(searchIndex);
SearchResponse searchResponse = new SearchResponse();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(matchAllQuery());
searchSourceBuilder.size(180);
searchRequest.source(searchSourceBuilder);
if (elanode != null) {
System.out.println("RestHighLevel node success!!!");
}
try {
searchResponse = elanode.search(searchRequest, RequestOptions.DEFAULT);
System.out.println("status => " + searchResponse.status());
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
} catch (ElasticsearchException e) {
System.out.println(e);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}
'ELK > elasticsearch' 카테고리의 다른 글
elasticsearch SSL 적용 connect code + python (0) | 2019.10.22 |
---|---|
logstash_01 / json (0) | 2019.10.19 |
elasticsearch : count (0) | 2019.05.21 |
elasticsearch + shell01 (0) | 2019.05.11 |
elastic 불용어 테스트 (0) | 2019.05.01 |