picturesafe-search wraps the Elasticsearch Java client and provides a high level API to access its functionality. If you need to access certain functions, which are not covered by picturesafe-search, it is possible to use the wrapped Elasticsearch Java High Level REST Client directly.
@Component
@ComponentScan
public class MyClass {
@Autowired
private ElasticsearchService elasticsearchService;
private RestHighLevelClient getRestHighLevelClient() {
return elasticsearchService.getRestClient();
}
}
@Component
@ComponentScan
public class MyClass {
@Autowired
private SingleIndexElasticsearchService singleIndexElasticsearchService;
private RestHighLevelClient getRestHighLevelClient() {
return singleIndexElasticsearchService.getElasticsearchService().getRestClient();
}
}
When using the the DefaultElasticConfiguration
or the DefaultClientConfiguration
, the RestClientConfiguration
Spring Bean provided by the DefaultClientConfiguration
can be autowired:
@Component
@ComponentScan
public class MyClass {
@Autowired
private RestClientConfiguration restClientConfiguration;
private RestHighLevelClient getRestHighLevelClient() {
return restClientConfiguration.getClient();
}
}
When not using the the DefaultElasticConfiguration
or the DefaultClientConfiguration
, a client Spring Bean has to be defined as follows:
@Configuration
@PropertySource("classpath:elasticsearch.properties")
public class DefaultClientConfiguration {
@Value("${elasticsearch.hosts:localhost:9200}")
private String elasticsearchHosts;
@Value("${elasticsearch.sniffer.enabled:false}")
private boolean snifferEnabled;
@Bean
public RestClientConfiguration restClientConfiguration() {
final RestClientConfiguration rcc = new RestClientConfiguration(elasticsearchHosts);
rcc.setSnifferEnabled(snifferEnabled);
return rcc;
}
}
The Elasticsearch Java High Level REST Client can then be accessed via the RestClientConfiguration
:
@Component
@ComponentScan
public class MyClass {
@Autowired
private RestClientConfiguration restClientConfiguration;
private RestHighLevelClient getRestHighLevelClient() {
return restClientConfiguration.getClient();
}
}
Since picturesafe-search requires a RestClientConfiguration
Spring Bean, the Elasticsearch Java High Level REST Client can also be accessed via the ElasticsearchService
or the SingleIndexElasticsearchService
with this configuration.
with by the picturesafe-search community
Code licensed Apache License 2.0 Documentation licensed CC-BY-4.0