1

我正在试验/学习弹簧数据neo4j。我有一个非常简单的应用程序,可以存储来自 twitter 的推文。请看下面的片段。

@NodeEntity
public class Tweet {

    @GraphId
    private Long id;

    private String tweet;

    @Indexed
    Set<String> hashtags;

问题是,存储哈希标签的最佳方式是什么,以便我可以快速获取它们所属的推文?我能想到的要么是在 Set 上使用 @Indexed,要么实际上创建一个单独的 Hashtag NodeEntity 并在它和推文之间建立关系。我找不到任何关于在 NodeEntity 中为集合建立索引的文档,所以我不确定是在集合对象上创建索引还是集合中的每个字符串都被索引。任何建议都会很好。谢谢。

4

1 回答 1

5

当你这样做时,@Indexed它会被放入 Neo4j 的索引系统中,即 Lucene。Lucene 实际上并不索引集合,而是集合的字符串表示。

至于您的数据模型,我将创建一个HashTag节点,每个推文都将连接到该节点。对于更常见的哈希标签,您最终会遇到密集节点问题,但总的来说,它允许您进行更多分析,例如获取具有相同哈希标签的所有推文。

于 2013-02-10T15:44:24.193 回答