SpringBoot整合Spring Data Solr

此文不讲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;
}
}

posted @ 2018-03-12 15:16  风邪取鸟  阅读(1360)  评论(0编辑  收藏  举报