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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 【ES系列四】——ESjdbc的封装

一、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
-


四、总结


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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
ES6学习(10)ES6的继承
ES6学习(10)ES6的继承
|
1月前
|
前端开发 网络架构
ES6对函数做了哪些扩展?
本文首发于微信公众号“前端徐徐”,介绍了 ES6 中函数参数的默认值、rest 参数、严格模式、name 属性、箭头函数、尾调用优化等新特性,并详细解释了各个特性的使用方法和注意事项。同时,还介绍了 ES2017 和 ES2019 中关于函数的一些改进,如函数参数尾逗号、`Function.prototype.toString()` 方法的修改以及 `catch` 语句参数的省略。
14 1
|
6月前
ES5、ES6类的定义
ES5和ES6都支持类的定义,但ES6引入了更简洁的语法。在ES5中,类是函数,方法绑定在原型上;而ES6使用`class`关键字,构造方法为`constructor`,方法直接定义在类内。ES6的类继承使用`extends`关键字,子类需调用`super`初始化父类属性。示例展示了Person类及其Student子类的定义和方法调用。
41 1
|
6月前
|
JavaScript 前端开发
ES6之对象的简化
ES6(ECMAScript 2015)引入了一些新的语法特性,使得对象的定义和使用更加简洁和方便。以下是一些ES6中对象的简化写法:
ES5 / ES6 的继承除了写法以外还有什么区别
ES5 / ES6 的继承除了写法以外还有什么区别
101 0
|
JavaScript
【ES6】类
【ES6】类
56 0
ES6知识之对象
ES6知识之对象
101 0