JanusGraph创建索引时出现异常:java.lang.IllegalArgumentException: Name cannot be in protected namespace: label
在创建janusgraph的边索引时,报如下异常,经过排查。
关键代码如下:
for (Map.Entry<String, String> entry : fields.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
PropertyKey propertyKey = mgt.makePropertyKey(key)
.dataType(Class.forName(value)).cardinality(Cardinality.SINGLE).make();
indexBuilder.addKey(propertyKey);
}
indexBuilder.buildMixedIndex("search");
其中在进行这步操作时报错了。
PropertyKey propertyKey = mgt.makePropertyKey(key) .dataType(Class.forName(value)).cardinality(Cardinality.SINGLE).make();
经过排查发现是key
的值为label
,而label
为关键字,如果不能直接使用。
解决办法
将label
改成`label`,和处理mysql创建表结构时,处理关键字的方式一样。