Java操作ElasticSearch之创建客户端连接
Java操作ElasticSearch之创建客户端连接
Java操作ElasticSearch之创建客户端连接
ElasticSearch提供了主流开发语言的连接开发包
新建的maven项目 添加如下依赖即可:
注意几点:客户端版本号要与服务端的es版本号保持一致。
| <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>6.2.4</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency> </dependencies> |
连接代码:
package com.java1234.es;import java.net.InetAddress;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.transport.client.PreBuiltTransportClient;public class Test { private static String host="192.168.1.108"; // 服务器地址 private static int port=9300; // 端口 public static void main(String[] args) throws Exception{ TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(Test.host), Test.port)); System.out.println(client); client.close(); }} |
这里有个Setting 等后面讲到集群再详解;
Java操作ElasticSearch之创建索引 (索引的名称--库,类型--表名称,文档id--数据)
client.prepareIndex ("qq", "tweet","1")创建索引
client.prepareGet("qq", "tweet","1") 获取文档
ElasticSearch客户端提供了多种方式的数据创建方式,包括json串,map,内置工具;我们正式开始一般用json格式,借助json工具框架,比如gson ,json-lib,fastjson等等;
我们给下实例:
package com.java1234.es;import java.net.InetAddress;import java.util.Date;import java.util.HashMap;import java.util.Map;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.common.xcontent.XContentFactory;import org.elasticsearch.common.xcontent.XContentType;import org.elasticsearch.transport.client.PreBuiltTransportClient;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.google.gson.JsonObject;/** * ElasticSearch客户端连接服务器测试 * @author Administrator * */public class EsTest { private static String host="192.168.1.108"; // 服务器地址 private static int port=9300; // 端口 private TransportClient client=null; /** * 获取连接 * @return */ @SuppressWarnings({ "unchecked", "resource" }) @Before public void getCient()throws Exception{ client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(EsTest.host), EsTest.port)); } /** * 关闭连接 * @param client */ @After public void close(){ if(client!=null){ client.close(); } } /** * 添加索引 */ @Test public void testIndex()throws Exception{ IndexResponse response =client.prepareIndex("twitter", "tweet", "1") .setSource(XContentFactory.jsonBuilder() .startObject() .field("user", "kimchy") .field("postDate", new Date()) .field("message", "trying out Elasticsearch") .endObject() ) .get(); System.out.println("索引名称:"+response.getIndex()); System.out.println("类型:"+response.getType()); System.out.println("文档ID:"+response.getId()); // 第一次使用是1 System.out.println("当前实例状态:"+response.status()); } /** * 添加索引 */ @Test public void testIndex2()throws Exception{ String json = "{" + "\"user\":\"kimchy\"," + "\"postDate\":\"2013-01-30\"," + "\"message\":\"trying out Elasticsearch\"" + "}"; IndexResponse response =client.prepareIndex("weibo", "tweet") .setSource(json,XContentType.JSON) .get(); System.out.println("索引名称:"+response.getIndex()); System.out.println("类型:"+response.getType()); System.out.println("文档ID:"+response.getId()); // 第一次使用是1 System.out.println("当前实例状态:"+response.status()); } /** * 添加索引 */ @Test public void testIndex3()throws Exception{ Map<String, Object> json = new HashMap<String, Object>(); json.put("user","kimchy"); json.put("postDate",new Date()); json.put("message","trying out Elasticsearch"); IndexResponse response =client.prepareIndex("qq", "tweet") .setSource(json) .get(); System.out.println("索引名称:"+response.getIndex()); System.out.println("类型:"+response.getType()); System.out.println("文档ID:"+response.getId()); // 第一次使用是1 System.out.println("当前实例状态:"+response.status()); } /** * 添加索引 */ @Test public void testIndex4()throws Exception{ JsonObject jsonObject=new JsonObject(); jsonObject.addProperty("user", "kimchy"); jsonObject.addProperty("postDate", "1989-11-11"); jsonObject.addProperty("message", "trying out Elasticsearch"); IndexResponse response =client.prepareIndex("qq", "tweet") .setSource(jsonObject.toString(),XContentType.JSON) .get(); System.out.println("索引名称:"+response.getIndex()); System.out.println("类型:"+response.getType()); System.out.println("文档ID:"+response.getId()); // 第一次使用是1 System.out.println("当前实例状态:"+response.status()); } } |
Java操作ElasticSearch之创建客户端连接的更多相关文章
- java操作elasticsearch实现组合桶聚合
1.terms分组查询 //分组聚合 @Test public void test40() throws UnknownHostException{ //1.指定es集群 cluster.name 是 ...
- java操作elasticsearch实现query String
1.CommonTersQuery: 指定字段进行模糊查询 //commonTermsQuery @Test public void test35() throws UnknownHostExcept ...
- java操作elasticsearch实现聚合查询
1.max 最大值 //max 求最大值 @Test public void test30() throws UnknownHostException{ //1.指定es集群 cluster.name ...
- java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
1.前缀查询(prefix) //prefix前缀查询 @Test public void test15() throws UnknownHostException { //1.指定es集群 clus ...
- java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)
1.条件match query查询 //条件查询match query @Test public void test10() throws UnknownHostException { //1.指定e ...
- java操作elasticsearch实现查询删除和查询所有
后期博客本人都只给出代码,具体的说明在代码中也有注释. 1.查询删除 //查询删除:将查询到的数据进行删除 @Test public void test8() throws UnknownHostEx ...
- java操作elasticsearch实现批量添加数据(bulk)
java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...
- java操作elasticsearch实现基本的增删改查操作
一.在进行java操作elasticsearch之前,请确认好集群的名称及对应的ES节点ip和端口 1.查看ES的集群名称 #进入elasticsearch.yml配置文件/opt/elasticse ...
- java操作文件的创建、删除、遍历
java操作文件的创建.删除.遍历: package test; import java.io.File; import java.io.IOException; import java.util.A ...
随机推荐
- Dubbo介绍(一)
Dubbo是一个分布式.高性能.透明化的 RPC 服务框架,作用是提供服务自动注册.自动发现等高效服务治理方案. 一.Dubbo架构图 Provider:提供者,服务发布方 Consumer:消费者, ...
- VIJOS-P1421 更换轮胎
JDOJ 1506: VIJOS-P1421 更换轮胎 https://neooj.com/oldoj/problem.php?id=1506 Description 经过数周的期待,比赛终于正式开始 ...
- JDOJ 1162 是否闰年
1162: 是否闰年 https://neooj.com:8082/oldoj/problem.php?id=1162 题目描述 输入一个年份year,求year是否是闰年,如果是闰年输出L,否则输出 ...
- 使用 SQLContext 可以从现有的 RDD 或数据源创建 DataFrames 报错?
报错情况: 解决方法: SQLContext可能需要自己创建. 所以,先运行var sqlContext=new org.apache.spark.sql SQLContext(sc).即可. 之后再 ...
- JAVA并归排序(数组+链表)
并归排序与快速排序相似,靠分治思想突破了排序算法 O(n2) 的瓶颈. 我们看回顾一下几大排序算法的时间.空间复杂度: 排序算法 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定 冒泡排序 O(n ...
- 【Step-By-Step】第 三 周
本周面试题一览: 什么是XSS攻击,XSS 攻击可以分为哪几类?我们如何防范XSS攻击? 如何隐藏页面中的某个元素? 浏览器事件代理机制的原理是什么? setTimeout 倒计时为什么会出现误差? ...
- Vue插槽详解 | 什么是插槽?
作者 | Jeskson 来源 | 达达前端小酒馆 什么是插槽?插槽的指令为v-slot,它目前取代了slot和slot-scope,插槽内容,vue实例一套内容分发的api,将slot元素作为承载分 ...
- [LeetCode] 344. Reverse String 翻转字符串
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
- idea插件篇之java内存分析工具(JProfiler)
前言在运行java的时候有时候想测试云运行时占用内存情况,这时候就需要使用测试工具查看了.在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在i ...
- Redis数据结构及常用命令(草稿)
通用命令 数据类型 string 字符 list 列表 set 集合 zset 有序集合 hash 散列(字典中的字典) bitmap 位图 hyperloglog