当前位置: 首页 > news >正文

java elasticsearch_Java操作ElasticSearch

# ##java客户端连接到ElasticSearch服务器

创建maven工程 添加坐标 最好跟服务器elasticsearch一致

org.elasticsearch.client

transport

6.2.4

net.sf.json-libjson-lib2.4jdk15

# ## 获取TransportClient

java程序连接elasticsearch通过TransportClient类

f8c5b4321a70bfabf524b8461cb7b06f.png

TransportClient类是一个抽象类  具体的实现是PreBulitTransportClient

public classTestEs {

private static String host="192.168.88.133"; //服务器地址

private static int port=9300; //端口

/**

* 创建客户端连接到elasticsearch服务器

*/@Test

public void teseConnection() throws Exception{

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY);

client .addTransportAddress(new TransportAddress(InetAddress.getByName(TestEs.host), TestEs.port));

System.out.println(client);

client.close();

}

}

public classTestEs {private static String host="192.168.88.133"; //服务器地址

private static int port=9300; //端口

private TransportClient client=null;/**

* 获取连接

* @return*/@Beforepublic voidgetCient()throws Exception{

client= newPreBuiltTransportClient(Settings.EMPTY)

.addTransportAddress(newTransportAddress(InetAddress.getByName(TestEs.host), TestEs.port));

System.out.println(client);

}/**

* 关闭连接

* @param client*/@Afterpublic voidclose(){if(client!=null){

client.close();

}

}/**

* 添加索引*/@Testpublic voidtestAdd()throws Exception{

IndexResponse response=client.prepareIndex("hello", "es", "1")

.setSource(XContentFactory.jsonBuilder()

.startObject()

.field("name", "zhangsan")

.field("birthday", newDate())

.field("age", 20)

.endObject()

)

.get();

System.out.println("索引名称:"+response.getIndex());

System.out.println("类型:"+response.getType());

System.out.println("文档ID:"+response.getId()); //第一次使用是1

System.out.println("当前实例状态:"+response.status());

}

}

ElasticSearch提供了根据索引名称,类别,文档ID来获取数据

@Testpublic voidtestGet(){

GetResponse getResponse=client.prepareGet("hello", "es", "1").get();

System.out.println(getResponse.getSourceAsString());

}

ElasticSearch提供了根据索引名称 类别 文档ID来修改数据 修改的设置数据可以是Map son串等

@Testpublic voidtestUpdate() {

Map map = new HashMap();

map.put("name", "lisi");

map.put("birthday", newDate());

map.put("age", "25");

UpdateResponse response= client.prepareUpdate("hello", "es", "1").setDoc(map).get();

System.out.println("索引名称:" +response.getIndex());

System.out.println("类型:" +response.getType());

System.out.println("文档ID:" + response.getId()); //第一次使用是1

System.out.println("当前实例状态:" +response.status());

}

ElasticSearch提供了根据索引名称 类别 文档ID来删除数据

@Testpublic voidtestDelete(){

DeleteResponse response=client.prepareDelete("hello", "es", "1").get();

System.out.println("索引名称:"+response.getIndex());

System.out.println("类型:"+response.getType());

System.out.println("文档ID:"+response.getId()); //第一次使用是1

System.out.println("当前实例状态:"+response.status());

}

相关文章:

  • java 拆分xml_使用Java分割1GB Xml文件
  • a与a的共轭转置相乘_线性代数A矩阵乘以A的转置的含义或者几何意义
  • java 会话管理_java会话管理
  • JAVA中传值的语句_java中的传值方法。
  • java重新加载class_Java使用ClassLoader重新加载代码
  • flume java 安装部署_Flume安装与配置
  • java区块链技术web3j_【区块链】以太坊 web3j for java 使用 - 部署和调用合约 3
  • java exception message_Java 如何摆脱Exception.getMessage()输出带类名
  • dropzone java多文件_java zyUpload 实现多文件上传
  • linux ttyusb读写_如何在Linux上找到所有串行设备(ttyS,ttyUSB,..)而不打开它们?
  • 我的世界java无限水_我的世界:一桶水变成“无限水”的11种方法!真正属于老mc的技术...
  • 怎样把java降至7_JDK1.8降到1.7技巧
  • java中byte数组为参数,JAVA:PBEKeySpec带有字节数组参数,而不是ASCII
  • android休眠唤醒java_android的休眠和唤醒流程
  • java入门 helloworld_java入门篇1--- helloworld