이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
서론
스프링 부트 1.3.x 를 사용하다 이번에 1.4.0가 출시되어 업데이트 하였습니다. 문제는 1.4.0 버전 기준으로 솔라의 기본 버전이 2.0.2.RELEASE 로 업데이트 되었고 이로인해 일부가 디프리케이트되었습니다.
기존 솔라 연동 : spring-data-solr 1.3.7 까지
필자는 database.properties 에 별도로 설정했으며 아래와 같이 설정하였습니다. solr.gs.host: http://호스트:포트/solr
/**
* 솔라
*/
@Configuration
@EnableSolrRepositories
(
basePackages = "db.solr.gs.repositories",
solrServerRef = "GsSolr",
solrTemplateRef = "GsSolrTemplate",
multicoreSupport = true
)
@PropertySource("classpath:database.properties")
public static class GsSolrConfig
{
@Value("${solr.gs.host}")
String host;
@Bean(name = "GsSolr")
public SolrServer getSolrServer()
{
return new HttpSolrServer(host);
}
@Bean(name = "GsSolrTemplate")
public SolrTemplate getSolrTemplate()
{
return new SolrTemplate(getSolrServer());
}
}
디프리케이트 부분 solrServerRef 가 사라졌습니다. SolrServer, HttpSolrServer 가 디프리케이트 되었습니다. 문서를 보니 HttpSolrClient 를 사용하라고 나옵니다. https://lucene.apache.org/solr/5_0_0/solr-solrj/org/apache/solr/client/solrj/impl/HttpSolrServer.html
수정
spring-data-solr 2.x 부터는 아래와 같이 작성하셔야 합니다.
/**
* 솔라
*/
@Configuration
@EnableSolrRepositories
(
basePackages = "db.solr.gs.repositories",
//solrServerRef = "GsSolr", 디프리케이트
solrClientRef = "GsSolr",
solrTemplateRef = "GsSolrTemplate",
multicoreSupport = true
)
@PropertySource("classpath:database.properties")
public static class GsSolrConfig
{
@Value("${solr.gs.host}")
String host;
// 디프리케이트 되었다.
// HttpSolrClient 를 대신 쓰라고 한다.
// @Bean(name = "GsSolr")
// public SolrServer getSolrServer()
// {
// return new HttpSolrServer(host);
// }
@Bean(name = "GsSolr")
public SolrClient getSolrClient()
{
return new HttpSolrClient(host);
}
@Bean(name = "GsSolrTemplate")
public SolrTemplate getSolrTemplate()
{
return new SolrTemplate(getSolrClient());
}
}
결과
입출력 무리없이 똑같이 돌아갑니다. 공식문서가 왜 디프리케이트 했는지에 대한 이유를 언급하지 않는 것이 조금 아쉽습니다. Deprecated. Use HttpSolrClient
- 쿨한 문서…
스프링 솔라 연동 강의는 아래를 참고해주세요.
스프링 solr 연동 /2016/06/28/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-%EC%8A%A4%ED%94%84%EB%A7%81-solr-%EC%97%B0%EB%8F%99.html Spring 서로 다른 종류의 DB에 @Transactional [예제포함] /2016/07/19/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-Spring-%EC%84%9C%EB%A1%9C-%EB%8B%A4%EB%A5%B8-%EC%A2%85%EB%A5%98%EC%9D%98-DB%EC%97%90-@Transactional-%EC%98%88%EC%A0%9C%ED%8F%AC%ED%95%A8.html