복붙노트

[SPRING] 스프링 부팅 스타터 데이터 SOLR에 schemaCreationSupport 사용

SPRING

스프링 부팅 스타터 데이터 SOLR에 schemaCreationSupport 사용

나는 스프링 부팅 스타터 데이터 SOLR를 사용하여 문서에 명시된 바와 같이, 봄 데이터 SOLR의 schmea의 cration 지원을 사용하고 싶습니다 :

그러나, 나는 이것을 달성 할 수없는입니다. 최대한 멀리 볼 수있는, 봄 부팅 스타터는 @EnableSolrRepositories 주석에 schemaCreationSupport 플래그를 사용하지 않습니다. 그래서 내가 무엇을 시도하면 다음과 같다 :

@SpringBootApplication
@EnableSolrRepositories(schemaCreationSupport = true)
public class MyApplication {
  @Bean
  public SolrOperations solrTemplate(SolrClient solr) {
    return new SolrTemplate(solr);
  }
}

저장소를 통해 새로운 개체를 저장할 때 그러나 와이어 샤크에서 찾고 나는 SOLR 스키마 API에 대한 호출을 볼 수 없습니다.

이 작업을하기위한 것입니다, 또는 내가 뭘 놓친 거지? 나는 봄 부팅 1.4.1 SOLR 6.2.0을 사용하고 있습니다.

해결법

  1. ==============================

    1.저도 같은 문제로 실행했습니다. 디버깅 후, 나는 스키마 작성 (또는 갱신) 전혀 발생되지 않는 이유 근본 원인을 발견했습니다 :

    저도 같은 문제로 실행했습니다. 디버깅 후, 나는 스키마 작성 (또는 갱신) 전혀 발생되지 않는 이유 근본 원인을 발견했습니다 :

    @EnableSolrRepositories 주석을 사용함으로써, 봄 확장은 저장소에 사용되는 SolrTemplate를 생성 컨텍스트에 공장 콩을 추가합니다. 이 템플릿은 생성 / 갱신을해야 SolrPersistentEntitySchemaCreator를 초기화한다.

    public void afterPropertiesSet() {
    
      if (this.mappingContext == null) {
        this.mappingContext = new SimpleSolrMappingContext(
          new SolrPersistentEntitySchemaCreator(this.solrClientFactory)
           .enable(this.schemaCreationFeatures));
      }
    
      // ...
    }
    

    문제는 공장이 afterPropertiesSet ()를 호출 한 후에 플래그 schemaCreationFeatures가 (이 창조주 수) 설정되어 있는지, 그래서 제작자는이 작업의 수행하는 것이 불가능하다.

    나는 스프링 데이터 SOLR의 이슈 트래커에 문제를 만들 것이다. 지금 다른 어떤 해결 방법을 참조하지 마십시오 중 스프링 데이터의 사용자 지정 포크 / 빌드를 갖거나 봄 - 클래스의 무리를 확장하고 사용하여 이전에 설정된 플래그를 얻으려고 노력 (그러나이 의심을 수행 할 수 있습니다).

  2. from https://stackoverflow.com/questions/39791966/enable-schemacreationsupport-in-spring-boot-starter-data-solr by cc-by-sa and MIT license