Использование Java-клиента Elasticsearch в Spring Batch
Я пытаюсь написать собственный писатель упругого поиска, который индексировал бы данные в реализации весеннего пакета.
Я мог бы найти приведенный ниже код в качестве конфигурации Java для эластичного поиска.
Кто-нибудь, кто использовал это, можете, пожалуйста, поделиться, где вызвать эту конфигурацию?
@Configuration
@EnableElasticsearchRepositories(basePackages = "org/springframework/data/elasticsearch/repositories")
static class Config {
@Value("${esearch.port}") int port;
@Value("${esearch.host}") String hostname;
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
return new ElasticsearchTemplate(client());
}
@Bean
public Client client(){
TransportClient client= new TransportClient();
TransportAddress address = new InetSocketTransportAddress(hostname, port);
client.addTransportAddress(address);
return client;
}
}
1 ответ
Код, который вы перечислили выше, является в основном вашими деталями реализации элемента Transport Client, указывающего на экземпляр Elasticsearch Server, т.е. он определяет ваш постоянный уровень с помощью Spring Data.
Этот код будет использоваться вашими репозиториями эластичного поиска, то есть репозиториями, которые вы определяете расширением: ElasticsearchRepository
из Spring Data.
Вам нужно отредактировать @EnableElasticsearchRepositories
в указанном вами коде фактически указывать на пакет, в котором вы храните свои определения репозитория - никаких других вызовов не потребуется.
Когда вы собираетесь записывать / индексировать данные в asticsearch, вы работаете с ElasticsearchRepository
интерфейс, и вам нужно определить свои собственные репозитории, и эти репозитории работают с экземплярами в соответствии с перечислением в вашем коде.
Надеюсь, поможет!!