Я пытаюсь создать приложение SpringBoot, которое использует хранилища solr. Я следую за этот учебник:Spring Data Solr репозитории с использованием JavaConfig
http://docs.spring.io/spring-data/solr/docs/current/reference/html/#solr.repositories
, который говорит, чтобы настроить мое приложение со следующим классом (пример 43):
@Configuration
@EnableSolrRepositories
class ApplicationConfig {
@Bean
public SolrClient solrClient() {
EmbeddedSolrServerFactory factory = new EmbeddedSolrServerFactory("classpath:com/acme/solr");
return factory.getSolrServer(); // getSolrServer does not exist
}
@Bean
public SolrOperations solrTemplate() {
return new SolrTemplate(solrClient());
}
}
Проблема заключается в том, если я что это не признает getSolrServer()
как метод от factory
. Действительно, если вы посмотрите на most recent API на EmbeddedSolrServerFactory
, вы не найдете этот метод, но он, по-видимому, существует в previous version того же класса.
Возможно, оно было переименовано из getSolrServer
в getSolrClient
, по какой-то причине, из одной версии в другую.
Вот моя зависимость в pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Во всяком случае, я пытался изменить getSolrServer
к getSolrClient
, но типу возвращаемого значения, т.е. SolrClient
, теперь несовместим. Если я пытаюсь вернуть org.apache.solr.client.solrj.embedded.EmbeddedSolrServer
, он дает мне ошибку, потому что не находит org.apache.solr.client.solrj.embedded
...
Другая проблема использования этого будет то, что SolrTemplate
не требует EmbeddedSolrServer
, так что это не очень хороший вариант .. .
Что такое версия для «spring-boot-starter-data-solr» в вашей пом. –
@ShivaKumarSS Нет указанной версии, поэтому я предполагаю, что она берет последнюю. – nbro