首页 > 其他分享 >【ES系列四】——ESjdbc的封装

【ES系列四】——ESjdbc的封装

时间:2022-12-05 16:32:35浏览次数:36  
标签:封装 name ESjdbc serverip cluster client public ES String

一、es的jdbc类

-
package com.yunshi.index.dao.esdb;

import org.apache.log4j.Logger;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

import java.net.InetAddress;

/**
 * es连接数据库相关类
 * Created by mk on 2017/11/22.
 */
public class ElasticSearchJdbc {

    private static final Logger logger = Logger.getLogger("ElasticSearchJdbc");

    private  String cluster_name = null;// 实例名称
    private  String cluster_serverip = null;// elasticSearch服务器ip
    private  String indexname = null;// 索引名称
    private TransportClient client = null;

    public  String getCluster_name() {return cluster_name;}
    public  void setCluster_name(String cluster_name) {this.cluster_name = cluster_name;}
    public  String getCluster_serverip() {return cluster_serverip;}
    public  void setCluster_serverip(String cluster_serverip) {this.cluster_serverip = cluster_serverip;}
    public  String getIndexname() {return indexname;}
    public  void setIndexname(String indexname) {this.indexname = indexname;}

    private void init() {
        // 设置集群名称
        Settings settings = Settings.builder().put("cluster.name", cluster_name).build();
        // 创建client
        client = new PreBuiltTransportClient(settings);

        if (this.cluster_name == null || "".equals(this.cluster_name)) {
            throw new EsdbException("ES未配置实例名称!");
        }
        if (this.cluster_serverip == null || "".equals(this.cluster_serverip)) {
            throw new EsdbException("ES未配置服务器IP!");
        }
        if (this.indexname == null || "".equals(this.indexname)) {
            throw new EsdbException("ES未配置索引名称!");
        }

        try {
            // 增加地址和端口
            client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(cluster_serverip), 9300));
        }catch (Exception e){
            logger.error("class : ElasticSearchJdbc --> method : getClient 创建ES客户端连接异常!");
            e.printStackTrace();
        }
    }

    /**
     * 返回一个ElasticSearch的连接客户端
     *
     * @return client
     */
    public TransportClient getClient() {
        if(client==null) {
            init();
        }
        return client;
    }
}
-

二、spring.xml配置

-
	<!--初始化ES配置并启动-->
	<bean id="ElasticSearchJdbc" class="com.yunshi.index.dao.esdb.ElasticSearchJdbc" init-method="init">
		<property name="cluster_name" value="${cluster_name}"/>
		<property name="indexname" value="${indexname}"/>
		<property name="cluster_serverip" value="${cluster_serverip}"/>
	</bean>
-

三、es配置文件

-
cluster_name=zhonghuayuntest
cluster_serverip=192.168.0.248
indexname=onair_resource
-

四、总结     虽然此博客内容简单,但是进行这样的抽取工作还是很有必要的!

标签:封装,name,ESjdbc,serverip,cluster,client,public,ES,String
From: https://blog.51cto.com/u_14471711/5913041

相关文章

  • 【ES系列一】——单机版安装教程
    安装环境:  系统版本:CentOS7.0.1406   jdk版本:1.8.0_111   ES版本:6.0.0一、下载  下载之后放到对应目录https://www.elastic.co/downloads/elasti......
  • 【ES系列二】——head可视化工具安装
    一、安装git  yum-yinstallgit二、git中下载elasticsearch-head  gitclonegit://github.com/mobz/elasticsearch-head.git  提升权限:chmod-R777el......
  • 【ES系列三】——ES集成ik分词并测试
    一、下载ik安装包  https://github.com/medcl/elasticsearch-analysis-ik/releases  注:一定要与ES版本保持一致(我ES用的是6.0.0所以ik也要下载6.0.0),如下图:......
  • git commit提交代码时跳过 eslint校验
    在使用命令gitcommit-m'提交信息'将本地代码提交到远程仓库时候,如果项目安装了per-commit,则会在Git键入提交信息前进行代码风格检查,如果代码不符合相应规则,则报错。......
  • ServletRequest 【专题】
     获取所有headerprivatestaticMap<String,String>getHeaders(HttpServletRequestrequest){Map<String,String>headerMap=newHashMap<>();......
  • React Warning: validateDOMNesting(...): <div> cannot appear as a descendant of <p>.
    报错信息umi.js:68474Warning:validateDOMNesting(...):<div>cannotappearasadescendantof<p>.其实不难看出是它提示你应该在p标签中写一个select这里造成错误......
  • 封装一个 vue3 通用组件,用于懒加载子组件
    简介某些场景下,容器组件会包含很多子组件,比如表格的列和表单的字段,而一旦数量上去而且列/字段组件还嵌套了其他组件,就会导致渲染时长急剧增加。因此,考虑封装一个通用的懒......
  • Kubernetes集群的Jenkins CI/CD版本上线流程部署
       最近在实习中接触了jenkins这个东西,所以花点时间了解了下。它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进......
  • 添加es的mapping与setting
    一:建立索引请求方式:put 请求url:127.0.0.1:9200/rain_run_index 请求体:{"mappings":{"properties":{"deviceNo":{......
  • kubernetes CKA题库(附答案)
    第一题RBAC授权问题权重:4%设置配置环境:[student@node-1]$kubectlconfiguse-contextk8sContext为部署管道创建一个新的ClusterRole并将其绑定到范围为特定的name......