【发布时间】:2016-11-23 17:05:53
【问题描述】:
我正在尝试创建一个使用 solr 存储库的 SpringBoot 应用程序。我正在学习本教程:
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,所以这不是一个好的选择...
【问题讨论】:
-
你的 pom 中“spring-boot-starter-data-solr”的版本是什么。
-
@ShivaKumarSS 没有指定版本,所以我猜它需要最新的。