索引集合弹簧数据neo4j

时间:2013-02-10 09:06:53

标签: neo4j spring-data-neo4j

我正在试验/学习弹簧数据neo4j。我有一个非常简单的应用程序存储来自Twitter的推文。请参阅下面的摘录。

@NodeEntity
public class Tweet {

    @GraphId
    private Long id;

    private String tweet;

    @Indexed
    Set<String> hashtags;

问题是,存储哈希标记的最佳方法是什么,以便我可以快速获取它们所属的推文?我能想到的是在Set上使用@Indexed或实际创建一个单独的Hashtag NodeEntity并在它和tweet之间建立关系。我找不到有关在NodeEntity中索引集合的任何文档,因此我不确定是否在set对象上创建了索引,或者是否对Set中的每个String进行了索引。任何建议都会很好。感谢。

1 个答案:

答案 0 :(得分:5)

当你执行@Indexed时,它会进入Neo4j的索引系统,即Lucene。 Lucene实际上并不索引集合,而是集合的字符串表示。

至于你的数据模型,我会创建一个HashTag节点,每个Tweet将连接到该节点。你最终会遇到更密集的Hash标签的密集节点问题,但总的来说它会让你做更多的分析,比如让所有的推文都使用相同的Hash标签。