您的位置:首页 > 编程语言 > Java开发

SpringBoot整合Spring Data Solr

2018-03-12 15:16 453 查看
此文不讲solr相关,只讲整合,内容清单如下

1. maven依赖坐标

2. application.properties配置

3. Java Config配置


1. maven坐标

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>

2. application.properties配置

注意,这里的 spring.data.solr.core 不是框架提供的,在idea中会提醒

# solr
spring.data.solr.host=http://localhost:8080/solr
spring.data.solr.core=collection1


3. Java Config配置

这里主要是配置一下SolrTemplate,默认情况下 solr的starter是不提供这个bean的。

注意的地方就是HttpSolrServer要导对包

import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.solr.core.SolrTemplate;
import org.springframework.data.solr.core.convert.SolrJConverter;

@Configuration
public class SolrConfig {
@Value("${spring.data.solr.host}")
private String solrHost;

@Value("${spring.data.solr.core}")
private String solrCore;

/**
* 配置SolrTemplate
*/
@Bean
public SolrTemplate solrTemplate() {
HttpSolrServer solrServer = new HttpSolrServer(solrHost);
SolrTemplate template = new SolrTemplate(solrServer);
template.setSolrCore(solrCore);
// 2018-03-12晚更新,此处不需要加这句话,反而加了之后会导致solr域和实体类字段不同名时,导致无法将值映射到实体类字段中,此时会抛出异常,所以这里不需要加下面这句话
// template.setSolrConverter(new SolrJConverter());
return template;
}
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: