我正在试验/学习弹簧数据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进行了索引。任何建议都会很好。感谢。
答案 0 :(得分:5)
当你执行@Indexed
时,它会进入Neo4j的索引系统,即Lucene。 Lucene实际上并不索引集合,而是集合的字符串表示。
至于你的数据模型,我会创建一个HashTag
节点,每个Tweet将连接到该节点。你最终会遇到更密集的Hash标签的密集节点问题,但总的来说它会让你做更多的分析,比如让所有的推文都使用相同的Hash标签。