索引neo4j中的现有关系

时间:2013-09-09 13:15:10

标签: java indexing neo4j

是否可以在现有关系上添加索引。 更具体地说,我有一个称为Relatadness的关系,其中一个属性称为score(得分为double),我想索引它(使用java或通过Web客户端)。 怎么办? 提前谢谢

1 个答案:

答案 0 :(得分:1)

由于您已经拥有这些关系,因此您必须遍历所有这些关系。此代码示例将创建一个名为RelatadnessIndex的索引,并将该关系存储在score的键下的索引中:

    GlobalGraphOperations ggo = GlobalGraphOperations.at(db);
    Index<Relationship> relatadnessIndex = db.index().forRelationships("RelatadnessIndex");
    for (Relationship r : ggo.getAllRelationships()) {
        if (r.getType().name().equals("Relatadness")) {
            double score = (double) r.getProperty("score");
            relatadnessIndex.add(r, "score", score);
        }
    }

请注意,默认情况下,Neo4j / Lucene会将值索引为String,因此进行数值范围搜索将无效。如果您想将其存储为数字,则需要更改为添加为:

relatadnessIndex.add(r, "score", new ValueContext( score ).indexNumeric() );