博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java连接Elasticsearch集群
阅读量:6801 次
发布时间:2019-06-26

本文共 3652 字,大约阅读时间需要 12 分钟。

package cn.test;import java.net.InetAddress;import java.net.UnknownHostException;import org.elasticsearch.action.search.SearchResponse;import org.elasticsearch.action.search.SearchType;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.index.query.QueryBuilders;import org.elasticsearch.search.SearchHit;public class ElkTest {//  private static final String CLUSTER_NAME = "cluster_name";      public static final String CLUSTER_NAME = "elasticsearch"; //实例名称    private static final String IP = "127.0.0.1";       //private static final String IP = "192.168.0.29";      private static final int PORT = 9300;  //端口    //1.设置集群名称:默认是elasticsearch,并设置client.transport.sniff为true,使客户端嗅探整个集群状态,把集群中的其他机器IP加入到客户端中      /*     //对ES1.6有效     private static Settings settings = ImmutableSettings             .settingsBuilder()             .put("cluster.name",CLUSTER_NAME)             .put("client.transport.sniff", true)             .build();     */      //对ES2.0有效      private static Settings settings = Settings              .settingsBuilder()              .put("cluster.name",CLUSTER_NAME)              .put("client.transport.sniff", true)              .build();      //创建私有对象      private static TransportClient client;        //反射机制创建单例的TransportClient对象  ES1.6版本  //    static {  //        try {  //            Class
clazz = Class.forName(TransportClient.class.getName()); // Constructor
constructor = clazz.getDeclaredConstructor(Settings.class); // constructor.setAccessible(true); // client = (TransportClient) constructor.newInstance(settings); // client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(IP), PORT)); // } catch (Exception e) { // e.printStackTrace(); // } // } //ES2.0版本 static { try { client = TransportClient.builder().settings(settings).build() .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(IP), PORT)); } catch (UnknownHostException e) { e.printStackTrace(); } } //取得实例 public static synchronized TransportClient getTransportClient(){ return client; } //为集群添加新的节点 public static synchronized void addNode(String name){ try { client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(name),9300)); } catch (UnknownHostException e) { e.printStackTrace(); } } //删除集群中的某个节点 public static synchronized void removeNode(String name){ try { client.removeTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(name),9300)); } catch (UnknownHostException e) { e.printStackTrace(); } } public static void main(String args[]){ String index="logstash-2016.02.16"; String type="logs"; SearchResponse response=ElkTest.getTransportClient().prepareSearch(index)//设置要查询的索引(index) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setTypes(type)//设置type, 这个在建立索引的时候同时设置了, 或者可以使用head工具查看 .setQuery(QueryBuilders.matchQuery("message", "Accept")) //在这里"message"是要查询的field,"Accept"是要查询的内容 .setFrom(0) .setSize(10) .setExplain(true) .execute() .actionGet(); for(SearchHit hit:response.getHits()){ System.out.println(hit.getSourceAsString()); } } }

 

转载地址:http://esuwl.baihongyu.com/

你可能感兴趣的文章
命名规则 : 匈牙利法则
查看>>
适用于单选的jQuery Auto-complete插件SelectToAutocomplete
查看>>
我的Windows 8下看漫画程序差不多可以用了
查看>>
rabbitmq使用__python客户端(消息接收者)
查看>>
如何实现一套鼠标键盘控制二台主机
查看>>
html5 手机页面
查看>>
Ubuntu 配置VNC以及使用VNC连接时,无法显示系统菜单栏,解决方法
查看>>
c# 如何通过反射 获取\设置属性值、
查看>>
分享:Apache OpenNLP 1.5.3 发布
查看>>
PCB_栅格大小设置
查看>>
在eclipse 的整个工程中查找字符串
查看>>
[转]Android中的Intent详细讲解
查看>>
电商也要懂的实体渠道实战知识zz
查看>>
命令行管理远程windows.(Remote Command Line On Windows)
查看>>
调用webservice使用URLConnection调用webservice
查看>>
父亲节例行吐槽
查看>>
c#动态创建ODBC数据源
查看>>
修改visual studio2010 的快捷键,使用ctrl+W 关闭当前文档
查看>>
ckeditor
查看>>
架构和框架的区别
查看>>