开发者学堂课程【ElasticSearch 最新快速入门教程:连接 ES_演示】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10635
连接 ES_演示
首先建立一个工程,打开 idea,打开之后选择 file,选择新建。
选中创建工程的模板,一般选中的是 quickstart,然后下一步 组织的名称,com.qf,Aetufactid: es-study,然后继续下一步,点 finish。
把之前的一个项目工程关闭,创建完毕 选中 enable Auto-import,导入完毕之后把 Maven 导进来。
把涉及到的依赖直接导进来:
Maven 依赖
--日志格式定制的 maven 依赖需要和资源目录 resources 下的 log4 properties 结合在一起使用一
<dependency>
<groupld>org.apache.logging. log4j</groupld>
<artifactld>log4j-core</artifactld>
<version>2.10.0 </version>
</dependency>
<dependency>
<groupld>org.apache.logging.log4j</groupld>
<artifactld>log4j-api</artifactld>
<version>.0</version>
</dependency>
<es 客户端的依赖,其中 api 包含了一个核心的 TransportClient
<dependency>
<groupld>org.elasticsearch.client</groupld>
<artifactld> transport</artifactld>
-下述通过 el 表达式读取上述 es--version 标签标签体的值-->
<version> S(es-version]</version>
</dependency>
--es 服务器对应的核心依赖--
<dependency>
cgroupld>org.elasticsearch</groupld>
cartifactld>elasticsearch</artifactld>
<version> S(es-version)</version>
</dependency>
--该依赖中自定义了诸如:
data 的注解,作用在实体类之上,用来简化实体类的书写代替 getter/setter 访问器;
除了导入依赖之外,还需要在 idea 中进行配置参考 :
https://jingyan.baidu.com/article/0a52e3f4e..html --
<dependency>
<groupld>org projectlombok</groupld>
<artifactld>lombok</artifactld>
<version>116.20</version>
</dependency>
--用来操作 son 格式数 maven 据的依赖,阿里巴巴公司贡献的,阿里编程规约,p3c--->
<dependency>
<groupld>com.alibaba </groupld>
<artifactld> fastison</artifactld>
<version>1.</version>
</dependency>
<dependency>
<groupld>com.alibaba</groupld>
<artifactld> druid</artifactld>
<version>1.1.9</version>
</dependency>
<!--https://mynrepository.com/artifact/org. nlp/elasticsearch-sal-->
<dependency>
<groupld> org.nlpcn</groupld>
<artifactld> elasticsearch-sql</artifactld>I
<version>6.3.0.0</version>
</dependency>
<dependency>
<groupld>org.elasticsearch</groupld> <artifactid> elasticsearch-X-content</artifactid>
<version>6.5.3</version>
</dependency>
把 ES 集群需要的依赖全部导进来,导入完毕之后,就可以启动程序。没有导入完毕,可以刷新一下。es-version 用来动态读取 properties 这个标签的值,比如说6.5. 3。
这里出错的话,可以把一些没有用到的 jar 包删掉,可以把 log 删掉,比如说 lombok,还有 fastjson 等。
需要一到两个依赖就行,一个是 transport,另一个是 elasticsearch。
下面就开始写代码,首先在写代码之前 一定要保证依赖是正确的。如果错误,后续的操作是不行的。
把自动生成的原程序删除掉,然后我们建立一个指包,右键名称叫做 es 。可以控制台下输出日志的格式,这里创建一下资源目录,叫做 resources。Log4j 可以控制日志输出的格式,创建一个 testES,使用 Java API 操作 ES 集群。
代码:
public class TestES{
/**
连接 es 集群的端口号
*/
private final static int PORT=9300;
private TransportClient client;
/**
*前处理
*/
@Before
public void setup(){
System.out.printIn("前处理操作,用于进行全局的初始化…");
Settings settings=Settings. bullder().put("cluster.name", "bigdata"). build();
Client= Client=null prebuilttransportClient(Settings)
client.addTransportAddresses(new TransportAddress(InetAddress.("JANSON01"), PORT)
new TransportAddress(InetAddress.("JANSON02"),PORT)
new TransportAddress(InetAddress.("JANSON03"),PORT)
}
/**
*正式测试的方法
*/
@Test
public void testEnv(){
System. out printin
("正式开始测试…")
System. out printin(" Transport Client 的实例是:"+ Client);
}
@After
public void cleanup(){
System.out.printin
(后处理操作,用于进行资源的释放…")
if(clientl=null)
client.close();
下面对全局的 client 进行一个初始化。
构建 client 的实例:
其中有一个类 probuilttransportclient,就可以 null 一下。
用合成的 API 进行初始化,首先 我们要创建一个 settings 的实例。需要创建一个因 inetaddressed 的实例,还有 int的实例。
Inetsocketaddress 构建:
需要传一个 hostname Inetaddress 以及 port 号来进行。首先这是一个主机名 Inet address 的 Transport address。主机名是 JANSON01,端口号就是9300PORT,有异常就 PORT 下,因为现在是测试。
39号异常是因为 setting 子的实例没有准备,里面有一个参数叫做集群名称,Cluster name 后面是参数值 bigdate。
下面看一下实例能否创建,如果能创建证明 客户端和服务器建立了连接,实例能够正常的创建,可以再加上 log4j-core 的依赖,这里有一个 log4j-core 的 API,可以根据提示加进来,可以测试一下。
证明客户端和服务器正常连接上,log4j-2也可以加进来,导入之后刷新一下,可以再测试一下。