【发布时间】:2016-01-11 13:06:21
【问题描述】:
我在使用 Titan 进行索引时遇到了一些问题。我将我的索引配置如下:
TitanGraph graph = TitanFactory.open("conf/titan-cassandra-es.properties");
TitanManagement management = graph.openManagement();
String indexKey = "byItemIdentifier";
String propertyKey = "ITEM_IDENTIFIER";
TitanIndex index = management.getGraphIndex(indexKey);
PropertyKey key = management.makePropertyKey(propertyKey).dataType(String.class).make();
management.buildIndex(indexKey, Vertex.class).addKey(key, Mapping.STRING.asParameter()).buildMixedIndex("search");
management.commit();
现在的问题:
Vertex vertex = graph.addVertex();
vertex.property(propertyKey, "www.foo.com/bar");
graph.commit();
然后我尝试以下方法:
graph.traversal().V().has(propertyKey, "foo").hasNext(); //(1)
graph.traversal().V().has(propertyKey, "bar").hasNext(); //(2)
graph.traversal().V().has(propertyKey, "www.foo.com/bar").hasNext(); //(3)
(1) = false、(2) = false 和 (3) = false。这是怎么回事? (3) 肯定应该返回 true 吗?我是否配置错误?
【问题讨论】:
-
不是你的问题的答案,但你真的需要混合索引吗?您可以使用 Titan 的内部复合索引进行相等性测试。就个人而言,由于问题788,我已经竭尽全力避免混合索引。
-
@Ralf 现在我已经改为使用复合索引,这就足够了。感谢您指出问题。
标签: elasticsearch titan tinkerpop3