2017-11-02 1 views
-1

안녕하세요. 코드를 통해 neo4j 데이터베이스에 대한 인덱스를 추가하려고합니다. 이봄 데이터에 대한 인덱스 추가 neo4j가 작동하지 않습니다.

@Configuration 
public class CreateIndex { 

@Bean 
public org.neo4j.ogm.config.Configuration configuration() { 
    org.neo4j.ogm.config.Configuration configuration = new 
       org.neo4j.ogm.config.Configuration(); 

configuration.autoIndexConfiguration() 
.setAutoIndex(AutoIndexMode.ASSERT.getName()); 

configuration.driverConfiguration().setDriverClassName 
("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver"); 

return configuration; 
} 

    @Bean 
    public SessionFactory sessionFactory() { 
    return new SessionFactory(configuration(), "com.domain"); 
    } 
} 

을 .:처럼 나는 나의 구성 클래스 설정을하고 난 내가 @index 주석을 추가 내 도메인 클래스가 있습니다.

@NodeEntity 
    @Getter 
    @NoArgsConstructor 
    @Component 
    public class Movie { 
     @GraphId 
     private Long id; 

     @Index(unique = true) 
     private String movieId; 
    } 

및 내 인덱스 쿼리를

n.o.d.e.request.EmbeddedRequest  : Request: CALL db.constraints() with params {} 
2017-11-02 16:30:11.780 INFO 40073 --- [   main] o.n.o.d.e.request.EmbeddedRequest  : Request: CALL db.indexes() with params {} 
2017-11-02 16:30:11.789 INFO 40073 --- [   main] o.n.o.d.e.request.EmbeddedRequest  : Request: CREATE INDEX ON :MOVIE(movieId) with params {} 

실행되고 있음을 볼 수 내 로그에서

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-neo4j</artifactId> 
     <version>1.4.0.RELEASE</version> 
    </dependency> 

로 내 종속성이하지만 인덱스가 존재하는지 확인하려고 할 때 또는 아무것도 반환하지 않는 :schema 을 사용하는 것이 아닙니다.

NEO4JTemplate을 사용하여 쿼리를 실행하려고했지만 시작시 쿼리를 어떻게 수행 할 수 있는지 알 수 없습니다.

예를 들어 내가 수동으로 추가 할 수 있지만 어떻게 구성 클래스에 추가하는 경우가 작동하는 응용 프로그램

CREATE INDEX ON :MOVIE(movieId) 

의 시작 동안 코드에 의해 인덱스 쿼리를 추가 할.

미리 감사드립니다.

답변

0

귀하의 구성은 대부분 정확합니다.

당신이 :schema 명령을 실행할 경우 당신은 말을하지 않습니다,하지만 내 추측이 앱에 사용 된 것과 다른 데이터베이스이라고 때문에 구성 다음

org.neo4j.ogm.config.Configuration configuration = new 
      org.neo4j.ogm.config.Configuration(); 
configuration.autoIndexConfiguration() 
    .setAutoIndex(AutoIndexMode.ASSERT.getName()); 
configuration.driverConfiguration() 
    .setDriverClassName("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver"); 

이 온도에서 무상 데이터베이스를 생성합니다 디렉토리, 응용 프로그램 종료 후 삭제됩니다. 그 이유는 URI가 지정되지 않기 때문입니다.

데이터베이스 URI를 지정하고 해당 데이터베이스의 스키마를 확인하십시오

configuration.driverConfiguration() 
    .setURI("...."); 
관련 문제