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 ...
随机推荐
- nginx 常见的问题
1.server匹配优先级 nginx 读取文件名是按照文件排序优先读取的顺序 对与一样的server 优先使用先读取到的 2.location匹配优先级 = 进行普通字符精确匹配,也就是 ...
- springboot整合OSS实现文件上传
OSS 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.OSS可用于图片.音视频.日志等海量文件的存储.各种终端 ...
- maven settings
maven settings 私有服settigs <?xml version="1.0" encoding="UTF-8"?> <setti ...
- 理解Javascript执行过程
Javascript是一种解释型的动态语言. 在程序中,有编译型语言和解释型语言.那么什么是编译型语言,什么是解释型语言呢? 编译型语言: 它首先将源代码编译成机器语言,再由机器运行机器码(二进制). ...
- 【oracle】substr函数 字符截取
- 前端Vue项目——登录页面实现
一.geetest滑动验证 geetest官方文档地址:https://docs.geetest.com/ 产品——极速验证:基于深度学习的人机识别应用.极验「行为验证」是一项可以帮助你的网站与APP ...
- day 29
Let the dead have the immortality of fame, but the living the immortality of love. 让逝者拥有不朽的荣誉,让生者拥有不 ...
- 【转】Java 泛型
转载:https://www.cnblogs.com/lwbqqyumidi/p/3837629.html. 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: public ...
- c++的CreateFile导致内存不能为written错误
LPCWSTR szFileName; szFileName=argv[2]; //LPCWSTR szFileName=L"test.txt";//文件名字可以根据自己的需要修改 ...
- 来吧!一文彻底搞定Vue组件!
作者 | Jeskson 来源 | 达达前端小酒馆 Vue组件的概述 组件是什么呢,了解组件对象的分析,Vue组件中的data属性,props传递数据的原理到底是什么. 事件通信的那些事 如何了解父子 ...