Если вам действительно не нужно присоединиться к кластеру Elasticsearch, я бы избегал использовать классы Java, предоставляемые Elasticsearch. Если вы подключитесь к Elasticsearch таким образом, вам нужно будет синхронизировать версии JVM, используемые Elasticsearch и вашим приложением.
Вместо этого вы можете подключиться к Elasticsearch, используя клиент Jest, найденный на GitHub. Это позволит вам подключиться к Elasticsearch через интерфейс REST, как и все другие клиентские библиотеки.
Вам нужно будет создать простой блок конфигурации для Elasticsearch, чтобы указать URL-адрес интерфейса REST. Кроме того, вам нужно будет создать диспетчер для запуска и остановки JestClient.
Обновление: Вы можете найти комплект Dropwizard, который я использую для подключения к Elasticsearch по адресу GitHub. Ниже приведены некоторые основные инструкции по использованию Java 8:
Включите зависимость для пакета в POM вашего проекта.
<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());
}
Наконец, используйте комплект для доступа к поставщику клиента.
@Override
public void run(ExampleConfiguration config, Environment env) throws Exception {
JestClient client = jestBundle.getClientSupplier().get();
}