0

나는 Mongo, Elasticsearch 및 Spring Boot를 모두 사용하는 프로젝트를 시작했습니다.Spring 데이터 MongoDb와 Elasticsearch 사이의 충돌

두 기술 중 하나만 사용하면 프로젝트가 올바르게 작동합니다. 그러나 둘 다 함께, 그들은 충돌합니다. 나는 내 문제와 비슷한 것으로 보이는이 특별한 기사를 보았다. https://jira.spring.io/browse/DATAES-57 그래서 시도해 보니 문제가 아직 남아 있습니다.

나는이 메인 클래스

@EnableAutoConfiguration(exclude = MongoRepositoriesAutoConfiguration.class) 
@EnableMongoRepositories(basePackages = "com.searchizi.mongo.repository") 
@EnableElasticsearchRepositories(basePackages = "com.searchizi.elasticsearch.repository") 
@ComponentScan 
public class Application implements CommandLineRunner { … } 

하여 예외 추적 클래스 SearchiziUsercom.searchizi.mongo.model 패키지에이

인 단축 형태를 입었다. 그것은 Elasticsearch 스캔 경로에 없습니다.

Caused by: java.lang.IllegalArgumentException: Unable to identify index name. SearchiziUser is not a Document. Make sure the document class is annotated with @Document(indexName="foo") 
    at org.springframework.util.Assert.isTrue(Assert.java:65) 
    at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.getPersistentEntityFor(ElasticsearchTemplate.java:869) 
    at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.createIndexIfNotCreated(ElasticsearchTemplate.java:684) 
    at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.createIndex(ElasticsearchTemplate.java:135) 
    at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.createIndex(AbstractElasticsearchRepository.java:80) 
    at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.<init>(AbstractElasticsearchRepository.java:72) 
    at org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository.<init>(SimpleElasticsearchRepository.java:36) 

각 저장소 유형에 대한 검색은 분리되어야하지만 분명히 아닙니다. 어떤 생각을 해야할지?

답변

1

이것은 실제로는 안되는 패키지에서 도메인 유형을 검색하는 것으로 보이는 스프링 데이터 탄성 검색의 버그입니다. 나는 DATAES-??을 신청했다. 또한 Spring Data Elasticsearch가 새로운 다중 저장소 구성 개선 사항을 지원하여 별도의 패키지를 명시 적으로 구성하지 않아도되도록 티켓을 보관했습니다.

@EnableMongoRepositories을 설정하면 자동 구성을 제외하면 스프링 부트의 자동 구성이 자동으로 비활성화되므로주의해야합니다.

+1

덕분에 내가 예를 들어 프로젝트를 만들고 https://jira.spring.io/에 대한 링크를 첨부합니다 해결 찾아보기/DATAES-136 – EvilJinious1

0

나는이 예외에 직면하고 나는 변화 elasticsearch의 버전과 MongoDB를 lib 디렉토리 버전

<!-- Spring data mongodb --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-mongodb</artifactId> 
      <version>1.7.0.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-commons</artifactId> 
      <version>1.10.0.RELEASE</version> 
     </dependency> 

     <!-- mongodb java driver --> 
     <dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
     </dependency> 

     <!-- ELASTICSEARCH --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-elasticsearch</artifactId> 
      <version>1.2.0.RELEASE</version> 
     </dependency> 
관련 문제