0

是否可以在现有关系上添加索引。更具体地说,我有一个名为 Relatadness 的关系和一个名为 score(score is double) 的属性,我想索引它(使用 java 或通过 web 客户端)。怎么能这样做?提前致谢

4

1 回答 1

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 会将值索引为字符串,因此进行数字范围搜索将不起作用。如果要将其存储为数字,则需要更改为添加为:

relatadnessIndex.add(r, "score", new ValueContext( score ).indexNumeric() );
于 2013-09-11T18:40:57.860 回答