2017-11-27 1 views
3

SDN 5 동적 @ 속성을 올바르게 색인 하시겠습니까?스프링 데이터 Neo4j 5 및 @Index for dynamic @Properties

는 다음과 같은 속성 선언 작업은 다음을

@Index(unique = false) 
@Properties(prefix = NAME_PROPERTY_PREFIX) 
private Map<String, String> nameProperties = new HashMap<>(); 

nameProperties지도의 내부의 모든 속성의 키가 별도로 인덱싱 할 것인가? 설명해주십시오.

답변

3

색인 생성 (자동 색인이 사용 가능한 경우)은 응용 프로그램 시작시 클래스를 검사하므로이 기능은 지원되지 않습니다. 클래스가 스캔되었을 때 발견되는 알려진 필드 (맵 키)가 없으므로 인덱스가 작성되지 않습니다.

또한 위의 예제를 시도 할 때 속성 필드 name (nameProperties)에 쓸모없는 인덱스가 생성되어 Neo4j에서 사용되지 않는다는 것을 알게되었습니다.

+0

답변 해 주셔서 감사합니다. 위에서 언급 한 접근 방식으로 동적 속성을 사용하여 인덱스를 만들 수있는 옵션이 있습니까? – alexanoid

+0

현장의 주요 아이디어는 모든 언어를 지원하기 위해 내 응용 프로그램을 현지화하는 것입니다. 예를 들어, 현재'String name' 속성 만 선언되어 있지만 사용자가 원하는 언어를 사용할 수있게하고 싶습니다. 이제는이 언어들을 모릅니다. 예를 들어'name_en','name_fr', name_it' 등등 ... 그래서이 목적을 위해 동적 속성을 사용하고 싶습니다. – alexanoid

+1

이 특정 속성에 대한 색인을 생성해야합니까? 그러나 나에게 이것은 어쨌든 틀린 것 같습니다. 인덱스의 기본 개념은 그래프를 트래버스하는 "빠른"엔트리를 제공하는 것입니다. 귀하의 설정에서 번역 된 값을 검색하여 모든 국제화 된 노드를 쿼리합니다. 이것이 정말로 당신이 원하는 것이라면, 내 생각에 일부 언어를 명시 적으로 지원하는 것입니다 (생각한 실험 : 또는 지원할 언어가 많을 때, 이것은 좋은 모델링 방식이라고 생각되는 것과는 거리가 멀고 더 많은 관계로 이어집니다. 노드에 대한 번역을 보유하는 언어 노드를 추가하십시오.) – meistermeier

관련 문제