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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 【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
-


四、总结


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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
185 5
|
Java 编译器 API
【小家Java】Lombok的使用详解(最详尽的解释,覆盖讲解所有可用注解),解决@Builder.Default默认值问题(下)
【小家Java】Lombok的使用详解(最详尽的解释,覆盖讲解所有可用注解),解决@Builder.Default默认值问题(下)
【小家Java】Lombok的使用详解(最详尽的解释,覆盖讲解所有可用注解),解决@Builder.Default默认值问题(下)
|
5月前
|
安全 搜索推荐 数据安全/隐私保护
无缝体验设计、一键直达的奥秘
Apptrace 是一款强大的工具,支持传参安装与一键拉起功能,优化用户体验。本文通过四个实战案例展示其应用:1) 电商深度链接营销,实现商品页直达;2) 游戏邀请系统,追踪来源并自动奖励;3) 新闻个性化内容推送,提升打开速度;4) 企业应用无缝登录,保障安全高效。同时总结最佳实践,包括优雅降级、参数加密、统计分析等,助力企业提升用户转化率与体验流畅度。
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
3158 7
|
11月前
|
关系型数据库 MySQL Linux
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
508 8
|
缓存 监控 算法
Python性能优化面试:代码级、架构级与系统级优化
【4月更文挑战第19天】本文探讨了Python性能优化面试的重点,包括代码级、架构级和系统级优化。代码级优化涉及时间复杂度、空间复杂度分析,使用内置数据结构和性能分析工具。易错点包括过度优化和滥用全局变量。架构级优化关注异步编程、缓存策略和分布式系统,强调合理利用异步和缓存。系统级优化则涵盖操作系统原理、Python虚拟机优化和服务器调优,需注意监控系统资源和使用编译器加速。面试者应全面理解这些层面,以提高程序性能和面试竞争力。
232 1
Python性能优化面试:代码级、架构级与系统级优化
|
机器学习/深度学习 自然语言处理 API
自然语言处理 Paddle NLP - 文本语义相似度计算(ERNIE-Gram)
自然语言处理 Paddle NLP - 文本语义相似度计算(ERNIE-Gram)
775 0
|
Prometheus 监控 Cloud Native
在 Java 中,如何使用线程池监控以及动态调整线程池?
【10月更文挑战第22天】线程池的监控和动态调整是一项重要的任务,需要我们结合具体的应用场景和需求,选择合适的方法和策略,以确保线程池始终处于最优状态,提高系统的性能和稳定性。
2053 2
|
存储 运维 Linux
运维系列.在Docker中使用Grafana(一)
运维系列.在Docker中使用Grafana(一)
1965 5
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第29天】MySQL的match匹配多个字符串的语法
635 3