2013-02-10 5 views
1

저는 스프링 데이터 neo4j를 실험하고 배우고 있습니다. 트위터에서 트윗을 저장하는 아주 간단한 앱이 있습니다. 아래 스 니펫을 참조하십시오.콜렉션 스프링 데이터를 인덱싱합니다. neo4j

@NodeEntity 
public class Tweet { 

    @GraphId 
    private Long id; 

    private String tweet; 

    @Indexed 
    Set<String> hashtags; 

질문은 해시 태그가 속한 트윗을 빠르게 찾을 수 있도록 해시 태그를 저장하는 가장 좋은 방법은 무엇입니까? 내가 생각할 수있는 것은 Set을 통해 @Indexed를 사용하거나 실제로 별도의 Hashtag NodeEntity를 만들고 그와 트윗 사이에 관계를 설정하는 것입니다. NodeEntity에서 컬렉션을 인덱싱하는 데 필요한 설명서를 찾을 수 없으므로 Set 개체에 인덱스가 만들어 지거나 Set의 각 String이 인덱싱되는지 여부는 확실하지 않습니다. 어떤 제안이라도 좋다. 감사.

+0

또한 예제를 참조하십시오. https://github.com/jexp/sdn-twitter-graph –

답변

5

@Indexed을 실행하면 Lucene 인 Neo4j의 인덱싱 시스템에 적용됩니다. Lucene은 실제로 콜렉션을 색인하지 않고 콜렉션의 문자열 표현을 사용합니다.

데이터 모델에 관해서는 각 트윗이 연결될 HashTag 노드를 생성하는 것으로 갈 것입니다. 결국 더 많은 해시 태그에 대해 밀집된 노드 문제가 발생하지만 결국에는 해시 태그가 같은 모든 트윗을 가져 오는 것과 같이 더 많은 분석을 할 수있게됩니다.

+0

HashTag는 사용자가 참조하는'@ NodeEntity'입니다. 태그를 설정하십시오. SDN은 그에 따라 관계를 생성합니다. –

관련 문제