此文不讲solr相关,只讲整合,内容清单如下
1. maven依赖坐标
2. application.properties配置
3. Java Config配置
1. maven坐标
org.springframework.boot spring-boot-starter-data-solr
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; } }