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) {
                
            }
        }
    }
    
}

转载于:https://www.cnblogs.com/austinspark-jessylu/p/6879096.html

Elasticsearch教程(六) elasticsearch Client创建相关推荐

  1. 【ElasticSearch教程】--- Elasticsearch文档全文检索(十三)

    文档全文检索 在上面的操作中如果我们将查询的其实里面底层的操作是采用全文检索的方式实现的,下面我们可以一个测试.我们也查category字段,目前在我们的文档库中包含两个category , 一个是床 ...

  2. 【ElasticSearch教程】--- Elasticsearch文档聚合查询(十四)

    聚合查询 对查询的结果进行统计,分组等操作的时候就需要用的聚合操作, 聚合操作需要用到聚合操作对应的参数.参数字段名叫:aggs. 分组统计(terms) {"aggs": { / ...

  3. Elasticsearch教程(4) High Level REST Client API 查询 聚合 分组

    ES High Level REST Client API 查询 聚合 1 准备数据 1.1 插入测试数据 2 Maven引入ES 3 创建Client 4 查询API 4.1 根据id查询单条数据 ...

  4. ElasticSearch教程——汇总篇

    环境搭建篇 ElasticSearch教程--安装 ElasticSearch教程--安装Head插件 ElasticSearch教程--安装IK分词器插件 ElasticSearch教程--安装Ki ...

  5. (转)ElasticSearch教程——汇总篇

    https://blog.csdn.net/gwd1154978352/article/details/82781731 环境搭建篇 ElasticSearch教程--安装 ElasticSearch ...

  6. Elasticsearch教程elasticsearch Client创建

    Elasticsearch  创建Client有几种方式. 首先在 Elasticsearch  的配置文件 elasticsearch.yml中.定义cluster.name.如下: cluster ...

  7. Elasticsearch教程 elasticsearch Mapping的创建

    一.Mapping介绍 在 Elasticsearch  中, Mapping  是什么? mapping  在 Elasticsearch  中的作用就是约束. 1.数据类型声明 它类似于静态语言中 ...

  8. ElasticSearch教程——创建索引、类型、文档

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 介绍 索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库.事实上,我们的数据被存储和索 ...

  9. ES篇:ElasticSearch教程——创建索引、类型、文档

    ES知识汇总:https://blog.csdn.net/gwd1154978352/article/details/82781731 介绍 索引是ElasticSearch存放数据的地方,可以理解为 ...

最新文章

  1. wget下载https时遇到not trusted下载不了的解决办法
  2. 动图与数据同步关系研究
  3. 代码规范之eslint+prettier实践
  4. Leetcode 70. 爬楼梯 动态规划 c语言
  5. 这样学习正则表达式就轻松了!
  6. js获取iframe里的元素
  7. Android 天气预报【解析XML / Json文件(2种方式:手动解析、Gson库解析)】
  8. MySQL学习笔记(6)之设计范式
  9. 升降压斩波电路matlab,升降压直流斩波电路及matlab仿真.doc
  10. sql中 in 、not in 、exists、not exists 用法和差别
  11. 小米10S继承“祖传”三重快充:50W有线+30W无线+10W反充
  12. 脚本——web_custom_request函数详解
  13. 物联网培训总结(C#)
  14. Mybatis使用技巧
  15. 易语言代码转换python_易语言通过文本解析的方式把C代码转换成易代码
  16. 主数据治理平台培训规程
  17. 谷歌浏览器安装插件失败的解决方案
  18. 红帽的RHCSA、RHCE、RHCA值得报考吗?
  19. 每日新闻丨​iPhone11成败关系全球众多供应商下一张饭票
  20. 国行版苹果 ios 按键精灵无法联网问题处理

热门文章

  1. java mdpi_如何使用drawable兼容所有屏幕尺寸(idpi,mdpi,hdpi,xhdpi,xxhdpi)
  2. php如何反向排列数组,php中的sort()如何排列目录结构数组?
  3. git 应用 rebase
  4. 兰州理工大学linux试题,兰州理工大学学期《电子技术》试题.doc
  5. python定时任务是异步的吗_python异步实现定时任务和周期任务的方法
  6. 循环语句在c语言中的作用是什么,C语言中循环语句的使用
  7. php 返回设置时间戳,PHP-返回int时间戳而不是datetime
  8. VMware ESXi 环境备份与还原处理案例
  9. 【2020新版】六家云厂商价格比较:AWS、阿里云、Azure、Google Cloud、华为云、腾讯云
  10. Netty学习总结(5)——Netty之TCP粘包/拆包问题的解决之道