按 ES 索引顶点属性排列的泰坦顺序



根据最新的 Titan 0.4.1 文档,此代码应该可以对结果集中的顶点进行排序:

graph.query().has("name",CONTAINS,"john").orderBy("age",Order.DESC).limit(10).vertices()

我想跨一组潜在的大型顶点执行这种类型的查询,因此希望对其进行索引。 文档建议:

大多数外部索引后端支持本机排序和 有效。但是,orderBy 方法中使用的属性键必须 配置为在此索引后端中编制索引以获取本机结果 订购支持。这在 orderBy 键 与查询键不同。如果未对属性键编制索引, 然后排序需要将所有结果加载到内存中。

特别是对于 Elasticsearch 后端,我们如何创建一个支持这种orderBy方法的索引?

是否有一个简单的第三个参数传递给KeyMakerindexed方法,可能是文档中对以下示例的扩展?

graph.makeKey("age").dataType(Integer.class).indexed("search", Vertex.class).make();

您只需要在 ES 中索引该属性(就像任何其他属性一样)。

在 Titan 中索引(错误;orderBy 不会被优化):

graph.makeKey("age").dataType(Integer.class).indexed(Vertex.class).make();
在 ES 中

索引(正确;在 ES 中对本机结果进行排序):

graph.makeKey("age").dataType(Integer.class).indexed("search", Vertex.class).make();

奇尔斯,丹尼尔

最新更新