es简介

es
实例化一个节点的客户端是获得客户端的最简单的方式。这个client可以执行elasticsearch相关的操作。
Node node = nodeBuilder().node();
Client client = node.client();
node.close();

启动一个node 它就加入了elasticsearch集群。你可以通过简单的设置cluster.name或者明确地使用clusterName方法拥有不同的集群
在项目的src/mian/resources/elasticsearch.yml文件中定义cluster.name。只要elasticsearch.yml在classpath目录下面,就能够用它来启动你的节点。
Cluster.name : yourclustername
或者通过Java
Node node = nodeBuilder().clusterName(“yourclustername”).node();
Client client = node.client();

保有数据设置只需要clients不需要分片分配给它们。还可以通过设置node.data为false或者设置node.client为true来简单实现。
Node node = nodeBuilder().client(true).node();
Client client = node.client();
node.close();
另外一个通用的用处就是启动node然后利用Client进行单元/集成测试。这种情况下 我们应该启动一个本地node。这只是启动node的一个简单的设置。注意本地表示运行在本地JVM上。运行在同一个JVM上的两个本地服务可以彼此发现并组成一个集群。
Node node = nodeBuilder().local(true).node();
Client client = node.client();
node.close();

传输(transport)客户端
TransportClient利用transport模块远程连接一个elasticsearch集群,它并不加入到集群中,只是简单的获得一个或者多个初始化的transport地址,并以轮询的方式与这些地址进行通信。
Client client = new TransportClient()
.addTransportAddress(new InetSocketTransportAddress(“host1”,9300))
.addTransportAddress(new InetSocketTransportAddress(“host2”,9300));
Client.close();
Es在索引的时候一般都是Json格式 因此使用Jackson定义类一个将对象转化成json的工具类。代码如下:
数据转化为JSON数据
public class ESUtils{
private static String toJson(Object o){
try{
return objectMapper.writeValueAsString(o);
}catch(JsonProcessingException e){
e.printStackTrace();
}
return “ ”;
}
}

es客户端
Settings settings = ImmutableSettings.settingsBuilder()
.put(“cluster.name”,”elasticsearch”)
.put(“client.transport.sniff”,true).build();

/**
创建客户端,所有的操作都由客户端开始,这个就好像是JDBC的Connection对象用完需要关闭
**/
Client client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(“192.168.1.106”,9300));

Index(增加)
/**
向ES添加索引对象
@author donlian
/
public class IndexTest{
public static void main(String[] args){
Settings settings = ImmutableSettings.settingsBuilder()
.put(“cluster.name”,”elasticsearch”)
.put(“client.transport.sniff”,true).build();
}
/

创建客户端,所有的操作都由客户端开始,用完要关闭
**/
Client client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(“192.168.1.106”,9300));
String json = ESUtils.toJson(new LogModel());
//创建索引对象
IndexResponse response = client.prepareIndex(“twitter”,”tweet”)
.setId(“1”);
.setSource(json)
.execute()
.actionGet();
//多次index这个版本号会变
System.out.println(“response.version()”+ response.version());
client.close();
}
}
运行以上代码就是向ES插入一条数据,运行两次还是一条。ES根据你设置的ID来设置对象,如果没有则插入,有则更新。每更新一次 对应的version加1.

Delete(删除)
DeleteResponse response = client.prepareDelete(“twitter”,”tweet”,”1”)
.execute().actionGet();
System.out.println(responsegetId());
System.out.println(ESUtils.toJson(response.getHeaders()));

GET(查询)
GetResponse response = client.prepareGet(“twitter”,”tweet”,”1”)
.execute().actionGet();
System.out.println(“response.getId():”+response.getId());
System.out.println(“response.getSourceAsString():”+response.getSourceAsString());
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值