连接 ES_演示 | 学习笔记

简介: 快速学习连接 ES_演示

开发者学堂课程【ElasticSearch 入门精讲连接 ES_演示学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/9982


连接ES_演示


连接ES演示

打开 IDEA

选择 File,

新建 project,选中下属创建工程的一个母版,

一般选中的是 quickstart,选中 maven

image.png

下一步

image.png

Groupid:com.qf

ArtifactId:es-study,下一步,

下一步,finish。

等待创建完毕,

选中 enable auto-import

将依赖导入进来,改成1.8,上一个指的是编译教员程序用的基底版本,第二个指的是编译之后的自制码所对应的文件。

unit 可以选择稍微高点的版本,4.10,4.12.下面就是关于

Elasticsearch 的一些设计,一些依赖,将这些依赖直接导入进来。

直接导入依赖,首先就是 log 日志,用来打印的一些依赖,Maven 依赖:

<!-- 日志格式定制的 maven 依赖需要和资源目录 resources 下的 log4j.properties 结合在一 起使用-->

<dependency>

<groupId> org.apache.logging.log4j</groupld>

<artifactld> log4j-core </artifactId>

<version> 2.10.0</version>

</dependency>

<dependency>

<groupId> org.apache.logging.log4j</groupld>

<artifactId> log4j-api </artifactId>

<version> 2.100</version>

</dependency>

下面就是 es 设计,clent 的一些 CPI

<l-- es 客户端的依赖,其中包含了一个核心的 api: TransportClient -->

<dependency>

<groupld>org.elasticsearch.client</groupld>

<artifactld>transport</artifactld>

<!--下述通过el表达式读取上述es-version标签标签体的值-->

<version>${es-version}</version>

</dependency>

<!-- es服务器对应的核心依赖-->

<dependency>

<groupld>org.elasticsearch</groupld>

<artifactld>elasticsearch</artifactld>

<version>${es-version}</version>

ldependency>

<!--该依赖中自定义了诸如:@data 的注解,作用在实体类之上,用来简化实体类的书写,代替:getter/setter 访问器;

除了导入依赖之外,还需要在idea中进行配置,参考:

https:/jingyan.baidu.com/article/0a52e3f4e53ca1bf63ed725c.html

<dependency>

<groupld>org.projectlombok</groupld>

<artifactId>lombok</artifactId>

vrsion>1.16.20</version>

<dependency>

还有阿里巴巴的 json,这样一个 API

<!--用来操作 json 格式数据的 maven 依赖,阿里巴巴公司贡献的,阿里编程规约,p3c -->

<dependency>

<groupld>com.alibaba</groupld>

<artifactId>fastjson</artifactld>

<version>1.2.46</version>

<dependency>

<dependency>

<groupld>com.alibaba</groupIld>

xartiiacud-diuid-jariiiactld>

<!-- https://mvnrepository.com/artifact/org.nlpcn/elasticsearch-sql -->

<dependency>

<groupld>org.nlpcn</groupld>

<artifactId>elasticsearch-sql</artifactld>

<version>6.3.0.0</version>

</dependency>

</dependency>

<groupld>org.elasticsearch</groupld>

<artifactld>elasticsearch-x-content</artifactld>

<version>6.5.3</version>

</dependency>

现在将 es 所需要的依赖全部导入进来,这些依赖参考的全部都是官网,等到导入完毕就可以写程序了,

image.png

还没有导入完毕可以刷新一下,要用动态去读取 properities 动态的值,

<es-version>6.5.3</es-version>

结果:

报错可以将一些没有用到的删掉,比如 log4j 可以删掉,没有影响,包括json,projectlombok.其实需要两个依赖就够了,一个是 transportclient,另一个是 elesticsearch.

开始写代码,写之前一定要保证导入是正确的,

删除掉自动生成的源程序,建一个子包,新建一个 Package ,新建一个资源目录,叫做 resources,右键点击 mark directory as,再点击,resouces root,下面就是 log4j,它能够定制日志输出的格式。

新建一个 New Class:testes,

Description:使用 Java api 操作 ES 集群测试类<br/>

Copyright (C),2018, Jansonxu <br/>

This program is protected by copyright laws. <br/>

Date: 2019年05月12日

public class TestES {

/**

*连接es集群的端口号

/*

private final static int POR7=9300;

private TransportClient client;

/**

*前处理

@Before(前处理应该有一个注解)

public void setup() throws UnknownHostException {

System.out.println("前处理操作,用于进行全局的初始化..In");

Settings settings = Settings.builder().put("cluster.name","bigdata"). build);

Settings settings = null;

client = new PreBuiltTransportClient(settings);

client.addTransportAddresses(new TransportAddress(InetAddress.getByNamne("JANSON01"),POR7);

new TransportAddress(InetAddress. getByName("JANSON02"),POR刀),

new TransportAddress(InetAddress. getByName("JANSON03"),PORD);

/**

*正式测试的方法

@Test

public void testEnv(){

System.outprintln("正式开始测试..");

System. out.printIn("TransportClient的实例是: "+client);

}

@After

public void cleanup({

System. out.println("n后处理操作,用于进行资源的释..);

if(client!=null){

client.close();

执行是有顺序的,先执行前处理的方法,再执行正式开始测试的方法,最后进行后处理操作,

首先有一个共同的端口号:

private final static int port=9300;用 private transportclient,处理 ES 集群的一个核心端口 api,对全局的 client 进行一个支持化,client=null,如何构建 client 的实例,点进去 client 查看,属于设置内,查看有哪些类,

有一个类叫做 prebuilt transportclient,属于普通类,普通类就可以new,client=new prebuilt transportclient(),

需要查询:class,collection和hostfailurelistener,

传一个 settings 的实例,准备一个 settings,settings=null,

client=new prebuilt transportclient(settings)

再加上多个 transport 的实例:

client.addtransportaddresses(newtransportaddresses())

构建 transportaddresses 实例,需要 inetaddress,int

查看 meta address

构建 inetsockeadress 需要传一个 hostname,addr,int port 来进行构建,client.addTransportAddresses(new TransportAddress(InetAddress.getByName("-J.ANSONO1"),PORT),

new TransportAddress(InetAddress.getByName(""JANSON02"),POR7),

new TransportAddress(InetAddress.getByName("JANSON03""),POR7));

可以打印一下/**

*正式测试的方法

*/

@Test

public void testEnv(){

System.out.println("正式开始测试.."");

system.out.println("TransportClient的实例是:"+client);

@After

public void cleanup({

System. out.println("n后处理操作,用于进行资源的释..);

if(client!=null){

client.close();

运行结果:testes.java:39

意思是settings这个实例还没有准备,

Settings 是一个最终类,用build来构成他的实类,可以 put 一些参数名,参数值,

Settings settings = Settings.builder().put( key."cluster.name"“bigdata.,build();

这个参数和es集群服务器的参数是一样的。

[jerry@JANSONe1 ~]$ cd es/config/

[jerry@ANSONe1 config]$ vim elasticsearch.yml

Cluster.name:bigdata(参数名,参数值)

运行结果:ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

实例创建成功。

<dependency>

<groupld</groupld>

<artifactld>log4j-core</artifactld>

</dependency>

搜一下 log4j,有一个 log4j coreapi 可以根据提示加进来

运行成功,证明服务器和客户端正常连接,

Log4j.2也可以加入进来,搜索 log4j,导入 log4japi,刷新,

测试结果:

Transportclient 的实例是:

org.elasticsearch.transport.client.prebuilttransportclient@7e75bf2d

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
数据采集 存储 自然语言处理
elasticsearch 跨索引联合多条件查询
elasticsearch 跨索引联合多条件查询
|
消息中间件 数据可视化 Java
自顶向下学习 RocketMQ(一): QuickStart
采用源码编译安装,注意请提前将 maven 安装调试好。 操作系统 macOS RocketMQ 版本:4.9.2 Maven 版本 3.3.9 JDK 版本 1.8.0_181
自顶向下学习 RocketMQ(一): QuickStart
|
存储 SQL 缓存
hudi概念讲解
hudi概念讲解
hudi概念讲解
|
Java
Java8使用stream操作两个list根据某字段匹配再对其中一个list进行赋值
Java8使用stream操作两个list根据某字段匹配再对其中一个list进行赋值
2356 0
|
8月前
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
通过引入 Sidecar 容器的技术,SAE 为用户提供了更强大的自定义日志与监控解决方案,帮助用户轻松实现日志采集、监控指标收集等功能。未来,SAE 将会支持 istio 多租场景,帮助用户更高效地部署和管理服务网格。
571 52
|
机器学习/深度学习 人工智能 运维
智能化运维:AI驱动下的IT运维革命###
本文探讨了人工智能(AI)技术在IT运维领域的创新应用,强调其在提升效率、预防故障及优化资源配置中的关键作用,揭示了智能运维的新趋势。 ###
|
消息中间件 存储 Prometheus
Kafka集群如何配置高可用性
Kafka集群如何配置高可用性
429 1
|
存储 SQL 分布式计算
Apache Paimon:Streaming Lakehouse is Coming
本文整理自阿里云智能开源表存储负责人,PPMC Member of Paimon,Flink PMC 成员李劲松(花名:之信)、同程旅行大数据专家,Apache Hudi & Paimon Contributor 吴祥平、汽车之家大数据计算平台负责人邸星星、联通数科大数据高级技术专家,Apache Paimon Contributor 王云朋在 Flink Forward Asia 2023 主会场的分享。
1381 1
Apache Paimon:Streaming Lakehouse is Coming
|
资源调度 监控 Linux
yarn资源管理之cgroup
yarn资源管理之cgroup
yarn资源管理之cgroup