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 argetdependency”文件夹下,你只需要拷贝该文件夹下的所有jar包到自己的Project的lib文件夹下即可
    • 最后鼠标放在你的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();
              }
      
          }
      }
原文地址:https://www.cnblogs.com/lxrm/p/7194064.html