ElasticSearch--------------------->Elasticsearch Clients--------------------->JAVA API-------------------->调用ES的第一个Java Project(不使用maven)
概述:
- elasticsearch支持多种client,并且为不同的client分别封装出了相应的api,开发者直接调用相应的api即可在自己的client工程中调用es提供的功能
- 本文讲述elasticsearch所提供的Java API,具体讲述如何写出第一个调用ES的Java project
- es官网上讲述了如何使用maven这个管理工具来进行es项目的创建,但是由于公司代理环境使得eclipse无法访问maven远程仓库,所以我们的开发用不了maven,因而自己想办法创建不依赖于maven的JavaProject去调用ES所提供的Java API
- 除此之外,这个教程也比较适用于不熟悉maven的Java程序员,因为本文所述操作过程不涉及maven的使用
开发环境:
- JDK 8
- eclipse
- Windows
- elasticsearch5
编程思路:
- step1, 在eclipse中创建Java project
- (由于这个操作十分简单,本文不做赘述,不懂得童鞋请自行百度)
- step2,在你的project中导入Elasticsearch相关jar包
- step1中创建的Java project会自动包含JDK中的相关jar包,这些jar包存放在JRE System Library目录下,如下图
-
-
有了JDK相关的jar包,你也只能开发Java EE project,因为上述这些jar包只提供Java EE相应的jar包
-
-
- 要想你自己的project中可以调用elasticsearch提供的Java API,首先要在你的project中引入ES所提供的相关jar包,至于如何引入以及应该引入哪些jar包,参见下述内容
- 首先在自己的project中新建 lib文件夹
- 然后将下面列表中的jar包复制粘贴至lib文件夹下
-
-
如果你不知道从哪里下载上述这些jar包,可以从下面的网址下载:
- 下载上述所有jar包的网址:http://download.csdn.net/download/napoay/9817575,从这个网址下载下来的是一个maven project,我们只需要该project中的相应jar包,这些jar包就存在于该工程的“\es5\target\dependency”文件夹下,你只需要拷贝该文件夹下的所有jar包到自己的Project的lib文件夹下即可
-
-
- step1中创建的Java project会自动包含JDK中的相关jar包,这些jar包存放在JRE System Library目录下,如下图
-
- 最后鼠标放在你的project name上,右键-------》properties----------》Java build path-------》add jars--------》lib----选中lib 目录下所有jar包--------》确定--------》apply
-
- 最后鼠标放在你的project name上,右键-------》properties----------》Java build path-------》add jars--------》lib----选中lib 目录下所有jar包--------》确定--------》apply
-
- 如果上面的操作成功,你会看到你的project的Referenced Libraries目录下会多出上面你导入的所有jar包
step3,编写相应的程序调用elasticsearch提供 的JAVA API
- 现在已经导入了ES开发所必须的jar包,下面就可以编写相应的Java 程序调用ES提供的Java API ,从而使用ES所提供的功能
- 为了简单起见,下面粘贴一个示例程序,其中包含了main函数,可以直接运行此程序,得到运行结果
-
package helloworld; import java.net.InetAddress; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.transport.client.PreBuiltTransportClient; public class HelloWorld { public static void main(String[] args) { try { //璁剧疆闆嗙兢鍚嶇О Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build(); //鍒涘缓client TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300)); //鎼滅储鏁版嵁 GetResponse response = client.prepareGet("megacorp", "employee", "1").execute().actionGet(); //杈撳嚭缁撴灉 System.out.println(response.getSourceAsString()); //鍏抽棴client client.close(); } catch (Exception e) { e.printStackTrace(); } } }
学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
posted on 2017-07-17 14:22 LXRM-JavaWeb、ML 阅读(802) 评论(0) 编辑 收藏 举报