关闭

java对elasticsearch操作

253人阅读 评论(0) 收藏 举报

一般情况,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
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17349次
    • 积分:315
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:7篇
    • 译文:0篇
    • 评论:1条
    最新评论