import java.net.InetAddress;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import com.floragunn.searchguard.ssl.SearchGuardSSLPlugin;
import com.floragunn.searchguard.ssl.util.SSLConfigConstants;
public class{
static Logger LOG = Logger.getLogger(ESClientHelper.class);
static final String INDEX = "index-*";
static final int SIZE = 1000;
private Settings.Builder settingsBuilder;
private Settings settings;
private TransportClient client;
({ "resource", "unchecked" })
public (){
try {
settingsBuilder = Settings.builder().put("path.home", ".").put("cluster.name", "elasticSearch")
.put("client.transport.sniff", true)
.put(SSLConfigConstants.SEARCHGUARD_SSL_HTTP_ENABLE_OPENSSL_IF_AVAILABLE, true)
.put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_ENABLE_OPENSSL_IF_AVAILABLE, true)
// .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_KEYSTORE_ALIAS, "node-1")
.put("searchguard.ssl.transport.enabled", true)
// .put("searchguard.ssl.transport.keystore_filepath",
// "/data/hexl/logstash/deleteIndex/conf/node-1-keystore.jks")
// .put("searchguard.ssl.transport.truststore_filepath",
// "/data/hexl/logstash/deleteIndex/conf/truststore.jks")
.put("searchguard.ssl.transport.keystore_filepath", "D:/code/node-1-keystore.jks")
//.put("searchguard.ssl.transport.keystore_filepath", "D:/code/node-2-keystore.jks")
.put("searchguard.ssl.transport.truststore_filepath", "D:/code/truststore.jks")
.put("searchguard.ssl.transport.keystore_password", "password")
.put("searchguard.ssl.transport.truststore_password", "password")
.put("searchguard.ssl.transport.enforce_hostname_verification", false);
settings = settingsBuilder.build();
client = new PreBuiltTransportClient(settings, SearchGuardSSLPlugin.class)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
//这里默认客户端端口是9300,网页默认端口是9200
} catch (Exception e) {
LOG.error("create ESClientHelper failed!");
}
}
/**
* 获取数据,分页操作
*
* @param indexStr
* @param fromN
* @param sizeN
*/
public ArrayList getResponse(int fromN, int sizeN){
try {
FieldSortBuilder sortBuilders = SortBuilders.fieldSort("@timestamp").order(SortOrder.ASC);
SearchResponse response = client.prepareSearch(INDEX).addSort(sortBuilders).setFrom(fromN).setSize(sizeN)
.execute().actionGet();
System.out.println(response.getHits().getHits().length);
return getContentList(response);
} catch (Exception e) {
LOG.error("getResponse failed, the parameter: " + "," + fromN + "," + sizeN);
}
return null;
}
/**
*获取某个字段,我的是content字段
*
* @param response
* @return
*/
private ArrayList getContentList(SearchResponse response){
ArrayList list = new ArrayList();
try {
if (response == null)
return null;
for (int idx = 0, len = response.getHits().getHits().length; idx < len; idx++) {
list.add(response.getHits().getAt(idx).getSource().get("content").toString());
}
} catch (Exception e) {
LOG.error("response transport to list failed!");
}
return list;
}
public void closeClient(){
try {
client.close();
} catch (Exception e) {
LOG.error("close ES java client failed!");
}
}
//test main
public static void main(String[] args){
System.out.println(new ESClientHelper().getResponse(0, 1000).toString());
}
}