java - 将 ElasticSearch 与 Dropwizard 结合使用

标签 java elasticsearch dropwizard

我正在尝试在 Dropwizard 应用程序中使用 ElasticSearch java API。

我找到了 dropwizard-elasticsearch 包:https://github.com/dropwizard/dropwizard-elasticsearch ,这似乎正是我所需要的。 不幸的是,它提供了零个“有用”文档,并且没有使用示例。

我仍然不明白如何使用 TransportClient 连接到远程服务器,因为,由于没有 drop wizard-elasticsearch 配置文档,我应该“随机”尝试,直到找到正确的配置键...

有没有人尝试过使用 dropwizard-elasticsearch?或者有人有这方面的真实用法示例吗?

提前致谢

最佳答案

除非你真的需要加入 Elasticsearch 集群,否则我会避免使用 Elasticsearch 提供的 Java 类。如果您确实以这种方式连接到 Elasticsearch,则需要使 Elasticsearch 和您的应用程序使用的 JVM 版本保持同步。

相反,您可以使用 Jest 连接到 Elasticsearch在 GitHub 上找到的客户端。这将允许您通过 REST 接口(interface)连接到 Elasticsearch,就像所有其他客户端库一样。

您需要为 Elasticsearch 创建一个简单的配置 block ,以指定 REST 接口(interface)的 URL。此外,您还需要创建一个管理器来启动和停止 JestClient。

更新:您可以在 GitHub 上找到我用于连接到 Elasticsearch 的 Dropwizard 包.以下是 Java 8 的一些基本使用说明:

在项目的 POM 中包含 bundle 的依赖项。

<dependency>
  <groupId>com.meltmedia.dropwizard</groupId>
  <artifactId>dropwizard-jest</artifactId>
  <version>0.1.0</version>
</dependency>

在应用程序配置的某处定义 JestConfiguraion 类。

import com.meltmedia.dropwizard.jest.JestConfiguration;

...

@JsonProperty
protected JestConfiguration elasticsearch;

public JestConfiguration getElasticsearch() {
  return jest;
}

然后在您的应用程序的 initialize 方法中包含该包。

import com.meltmedia.dropwizard.jest.JestBundle;

...
protected JestBundle jestBundle;

@Override
public void initialize(Bootstrap<ExampleConfiguration> bootstrap) {
  bootstrap.addBundle(jestBundle = JestBundle.<ExampleConfiguration>builder()
    .withConfiguration(ExampleConfiguration::getElasticsearch)
    .build());
}

最后,使用 bundle 访问客户端供应商。

@Override
public void run(ExampleConfiguration config, Environment env) throws Exception {
  JestClient client = jestBundle.getClientSupplier().get();
}

关于java - 将 ElasticSearch 与 Dropwizard 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26890391/

相关文章:

elasticsearch - 在logstash文件中输出的max_value大小是多少?

servlets - Dropwizard:设置 servlet 上下文参数

java - Dropwizard 解压缩请求过滤器

java - 如何创建mp3文件的缩略图

spring - elasticSearch从其他表索引

Java 空字符串拆分 ArrayIndexOutOfBoundsException

elasticsearch - 如何在Kibana仪表板版本6.6.0中更改字体大小?

java - Dropwizard 集成测试与 TestResource

java - Java 或 Apache Commons 中是否有可变参数空值检查功能?

apache httpd 启动时出现 Java 问题