java - TitanDB 定义和使用索引

标签 java titan tinkerpop

使用this 。我正在构建以下索引:

TitanManagement management = graph.openManagement();

PropertyKey key = management.makePropertyKey("ITEM_IDENTIFIER").dataType(String.class).make();

management.buildIndex("byItemIdentifier", Vertex.class).addKey(key).buildCompositeIndex();

management.commit();

但是当我运行以下查询时:

graph.traversal().V().has("ITEM_IDENTIFIER", "Test");

我仍然收到警告:

Query requires iterating over all vertices [(ITEM_IDENTIFIER = Test)]. For better performance, use indexes

如何让 TitanDB 使用索引来加快查找速度?

最佳答案

所以我设法解决了这个问题。感谢this answer提供更多信息。

问题是我假设我会使用 CompositeIndex 但在更仔细地阅读 Chapter 20 之后, Chapter 22 ,和 Chapter 28其实我错了。基于 String 的索引需要 MixedIndex

为了让 MisedIndexes 处理字符串,我必须首先安装 Elasticsearch启用基于String的索引。然后我可以通过替换来配置我的索引:

management.buildIndex("byItemIdentifier", Vertex.class).addKey(key).buildCompositeIndex();

management.buildIndex("byItemIdentifier", Vertex.class).addKey(key, Mapping.STRING.asParameter()).buildMixedIndex("search");

执行此操作后,警告消失了。我将进行更多测试以确认这是否有效,但目前这似乎已经解决了我的问题。

关于java - TitanDB 定义和使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33902817/

相关文章:

java - 使用 int 变量控制 Do...While() 循环不起作用

java - SDN4 - Neo4j OGM 和 JsonSubType 注释

java - 如何使用 Apache POI 加载大型 xlsx 文件?

Java FizzBu​​zz 递归解决方案

graph-databases - 在 Titan Cassandra 中使用新的 KeySpaces 并持久化数据

database - 为什么 Janus Graph 不被称为框架而 Apache TInkerPop 是?

apache-storm - Storm 0.9.1 和 Titan 图形数据库 0.4.2 与 apache cassandra 2.0.7 作为存储后端的 Kryo 兼容性

elasticsearch - Titan 1.0混合索引不适用于警告-查询需要遍历所有顶点

python - 如何将tinkergraph上传到python/gremlin?

graph - 蓝图中 Titan getType 的等价物是什么?