В настоящее время я использую следующие клиентские библиотеки Elasti c в моем весеннем загрузочном приложении:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.5.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.5.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>transport-netty4-client</artifactId>
<version>5.5.3</version>
</dependency>
И следующий код в классе конфигурации:
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
@Configuration
@EnableElasticsearchRepositories(basePackages = "com.x.y.repository",queryLookupStrategy= Key.CREATE_IF_NOT_FOUND)
...
public class AppConfiguration extends AbstractAnnotationConfigDispatcherServletInitializer {
...
@Bean
public Client client() {
...
final Settings elasticsearchSettings = Settings.builder().put("http.enabled", "false")/*.put("index.mapping.single_type","false")*/
.put("cluster.name", elasticSearchCluster).build();
logr.debug("elasticSearchCluster--> %d", elasticSearchCluster);
logr.debug("elasticSearchHost --> %d", elasticSearchHost);
try {
TransportClient client1 = new PreBuiltTransportClient(elasticsearchSettings);
client1.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
// return client;
setClient(client1);
} catch (UnknownHostException e) {
logr.error("Not able to connect to Elastic Search: ", e);
}
}
return client;
}
...
Выше приложение подключается к Сервер ES 5.5.3 нормально. Теперь я хотел бы использовать последнюю версию клиентских зависимостей 7.6.0 и остальных клиентов.
Вопросы:
- Можно ли использовать клиент последней версии для подключения к более старым версиям экземпляра сервера поиска elasti c?
- Если да, можете ли вы Пожалуйста, поделитесь версиями библиотек, которые я должен использовать, чтобы это работало правильно? Некоторые версии, которые я пробовал, вызывали ошибки в парсерах запросов lucene; Другие компилируются, но выдают ошибки при запуске.