Elasticsearch教程(六) elasticsearch Client创建
Elasticsearch 创建Client有几种方式。
首先在 Elasticsearch 的配置文件 elasticsearch.yml中。定义cluster.name。如下:
cluster.name: sojson-application
创建方式一:
import static org.elasticsearch.node.NodeBuilder.*;
//节点方式创建。
Node node = nodeBuilder().clusterName("yourclustername").node();
Client client = node.client();
/*
还有很多节点方式的创建方式,查看下面的官网地址。
https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/node-client.html
*/
创建方式二:
/**
* 指定 ip地址创建
*/
// on startup
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));
// on shutdown
client.close();
创建方式三:
//按集群名称创建
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "sojson-application").build();
Client client = TransportClient.builder().settings(settings).build();
//Add transport addresses and do something with the client...
创建方式四:
//同一内网Ip段,嗅的方式自己查找,组成集群。
Settings settings = Settings.settingsBuilder()
.put("client.transport.sniff", true).build();
TransportClient client = TransportClient.builder().settings(settings).build();
/*
客户端允许嗅其余的集群,它将数据节点添加到列表的机器使用。在这种情况下要注意,将使用的IP地址的其他节点开始(“publish”地址)。启用它,设置client.transport.sniff为 true:
*/
其实还有很多方式。具体使用哪种,看自己需求
工具类:
package com.sojson.core.elasticsearch.utils;
import java.net.InetAddress;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import com.sojson.common.utils.LoggerUtils;
import com.sojson.core.config.IConfig;
public class ESTools {
public final static Client client = build();
public final static Class clazz = ESTools.class;
/**
* 创建一次
* @return
*/
private static Client build(){
if(null != client){
return client;
}
Client client = null;
String ip = IConfig.get("es_ip");
LoggerUtils.fmtDebug(clazz, "获取ESIP地址:%s", ip);
try {
LoggerUtils.fmtDebug(clazz, "创建Elasticsearch Client 开始");
Settings settings = Settings
.settingsBuilder()
.put("cluster.name","sojson-application")
.put("client.transport.sniff", true)
.build();
client = TransportClient.builder().settings(settings).build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), 9300));
LoggerUtils.fmtDebug(clazz, "创建Elasticsearch Client 结束");
} catch (Exception e) {
LoggerUtils.fmtError(clazz, e, "创建Client异常");
}
return client;
}
/**
* 关闭
*/
public static void close(){
if(null != client){
try {
client.close();
} catch (Exception e) {
}
}
}
}
Elasticsearch教程(六) elasticsearch Client创建的更多相关文章
- (转)ElasticSearch教程——汇总篇
https://blog.csdn.net/gwd1154978352/article/details/82781731 环境搭建篇 ElasticSearch教程——安装 ElasticSearch ...
- Elasticsearch入门教程(六):Elasticsearch查询(二)
原文:Elasticsearch入门教程(六):Elasticsearch查询(二) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...
- Elasticsearch教程(五) elasticsearch Mapping的创建
一.Mapping介绍 在Elasticsearch中,Mapping是什么? mapping在Elasticsearch中的作用就是约束. 1.数据类型声明 它类似于静态语言中的数据类型声明,比如声 ...
- Elasticsearch 教程--入门
1.1 初识 Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架. 但是 L ...
- Elasticsearch High Level Rest Client 发起请求的过程分析
本文讨论的是JAVA High Level Rest Client向ElasticSearch6.3.2发送请求(index操作.update.delete--)的一个详细过程的理解,主要涉及到Res ...
- ElasticSearch的javaAPI之Client
翻译的原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/client.html#node-c ...
- Elasticsearch教程(二)java集成Elasticsearch
1.添加maven <!--tika抽取文件内容 --> <dependency> <groupId>org.apache.tika</groupId> ...
- ElasticSearch(六):索引模板
ElasticSearch(六):索引模板 学习课程链接<Elasticsearch核心技术与实战> Index Template Index Template - 帮助你设定Mappin ...
- EFK教程(3) - ElasticSearch冷热数据分离
基于ElasticSearch多实例架构,实现资源合理分配.冷热数据分离 作者:"发颠的小狼",欢迎转载与投稿 目录 ▪ 用途 ▪ 架构 ▪ 192.168.1.51 elasti ...
随机推荐
- Git基本用法简介
一. git和svn的主要区别 git是一个分布式的版本控制工具,而svn是一个集中式版本控制工具. 二. git工具安装 首先下载git:https://gi ...
- python 下划线转驼峰
# 下划线转驼峰 def str2Hump(text): arr = filter(None, text.lower().split('_')) res = '' j = 0 for i in arr ...
- Reinstall msdtc on Windows
Reinstall MSDTC The system reported an unexpected error condition. You can resolve this condition by ...
- Java并发(3)- 聊聊Volatile
引言 谈到volatile关键字,大多数开发者都有一定了解,可以说是开发者非常熟悉,深入之后又非常陌生的一个关键字.相当于轻量的synchronized,也叫轻量级锁,与synchronized相比性 ...
- HDU 5251 矩形面积(二维凸包旋转卡壳最小矩形覆盖问题) --2015年百度之星程序设计大赛 - 初赛(1)
题目链接 题意:给出n个矩形,求能覆盖所有矩形的最小的矩形的面积. 题解:对所有点求凸包,然后旋转卡壳,对没一条边求该边的最左最右和最上的三个点. 利用叉积面积求高,利用点积的性质求最左右点和长度 ...
- Codeforces Round #395 Div.2 题解
感受 第一次参加CF的rating比赛,感觉还是非常exciting,前18分钟把AB切掉之后一直在考虑C题,结果最后还是没有想出来Orz 传送门 A 比较水的模拟,就是计算:\(\frac{z}{l ...
- OpenGL入门学习(四)
http://blog.csdn.net/sun6255028/article/details/5090055 OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式.无论哪种颜色模式,计算 ...
- VIM使用技巧1
.命令是vim中很重要的一个命令,用法如下: 加入有一个文件vimtest.txt,内容如下: 1 Line one 2 Line two ...
- UVALIVE 2955 Vivian's Problem
参考: http://blog.csdn.net/acm_cxlove/article/details/7860735 感觉这里需要记录一下 #include <map> #include ...
- (十二)C语言双指针的常见用法
1.用作函数的返回值,比较常见的是返回分配的堆内存地址. 下面用一个例子进行说明下: /******************************************************** ...