【问题标题】:Java HTTP Client for ElasticSearch用于 ElasticSearch 的 Java HTTP 客户端
【发布时间】:2012-05-13 13:34:13
【问题描述】:

我正在尝试从 Java 连接到 ElasticSearch,但我只能通过 HTTP 连接。我不能使用TransportClient。是否有围绕 ElasticSearch REST API 的 Java 客户端包装器?如果是这样,我该如何使用它?

【问题讨论】:

    标签: java elasticsearch elasticsearch-jest


    【解决方案1】:

    您好,有一个全新的项目正好符合您的需求。它基于 Java 的用于 Elasticsearch 的 Rest API

    看看吧!它的名字JEST

    【讨论】:

    • 我有同样的问题,我必须能够通过端口 80 连接到 ES 服务器。 Jest 看起来不错,但不幸的是,Jest 示例应用程序远远落后于核心 Jest 库。
    【解决方案2】:

    一个新的“官方”基于 REST 的 java 客户端 will be available 从 v5.0.0-alpha4 开始。

    【讨论】:

      【解决方案3】:

      我们刚刚开源了Flummi,这是一个用于 Elastic Search 的 Java HTTP/REST 客户端。它尽可能地模仿传输客户端的 API,使移植现有代码变得容易。它还提供了比 Jest 更好的抽象级别,因为它使用异常报告所有错误。试试看!

      简单使用示例:

      Flummi flummi = new Flummi("http://elasticsearch.base.url:9200");
      
      SearchResponse searchResponse = flummi
         .prepareSearch("products")
         .setQuery(
            QueryBuilders.termQuery("color", "yellow").build()
          )
         .execute();
      
      System.out.println("Found " 
         + searchResponse.getHits().getTotalHits()
         + " products");
      searchResponse.getHits()
        .stream().map(hit -> hit.getSource().get("name").getAsString())
        .forEach(name -> System.out.println("Name: " + name));
      

      【讨论】:

        【解决方案4】:

        Since version 5.6 的 Elasticsearch Java SDK 他们提供了一个Java REST Client

         RestClient restClient = RestClient.builder(
            new HttpHost("localhost", 9200, "http"),
            new HttpHost("localhost", 9201, "http")).build();
        
         // for the RestHighLevelClient
         RestHighLevelClient client =
            new RestHighLevelClient(restClient);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-28
          • 2017-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多