java对elasticsearch操作

一般情况,java要想操作一个东东,肯定是要建立个实例,然后调用他的API进行,操作。

对于elasticsearch(ES)来说,同样的,下面来记录下过程:

ES是通过一个叫做客户端Client的东西,来操作APi的

1、那么首先就是要建立客户端

 //设置es节点的属性
 Settings settings = ImmutableSettings.settingsBuilder()
                    .put("client.transport.sniff", true)
                    .put("cluster.name", esClusterName)
                    .build();
//创建es客户端
client = new TransportClient(settings)
            .addTransportAddress(new InetSocketTransportAddress(esClusterIp, 9300))//esClusterIp是要连接的es的ip

这样就建立好一个客户端,其中有一些节点属性

可通过这样设置

  1. settingMap.put("node.client""false");  
  2. settingMap.put("node.data""true");  
  3. settingMap.put("node.local""true");  
  4. settingMap.put("cluster.name""clasterName");  
  5. settingMap.put("node.name""geloin");  
这里可以看下 ES-node属性介绍,写的很详细。

2、创建好了Client接下来就可以操作api了

先说下添加,这里的添加有点另类,es的添加操作较index,这个名字。。。害得我搜了半天,以为index这都不是。

他添加的是一个josn串,那么可按照一下步骤进行

XContentBuilder contentBuilder = XContentFactory.jsonBuilder()
        .startObject();
contentBuilder.field("message","add message");//要发送的字段
contentBuilder.field("num", "1");
String json = contentBuilder.endObject().string();//生成好json串
//发送数据,创建索引,即添加数据
client.prepareIndex(esIndex, esType).setSource(json)//添加到esIndex(相当于库)中的extype(相当于表)中
        .execute().actionGet();
 
3、同样拿到了Client再来一个查询
GetResponse responseGet = client.prepareGet(esIndex, esType, esIdea).execute().actionGet();//查找索引inde,type中指定id的数据
System.out.println(responseGet.getSourceAsString());//打印


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值