gremlin-server neo4j: как установить идентификатор, мульти-метку - PullRequest
0 голосов
/ 15 ноября 2018

Я запустил gremlin-сервер 3.3.4 с neo4j 3.3.4 с использованием http-канализатора, и это сработало. neo4j-empty.properties конфигурация была ниже

gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=/tmp/neo4j
gremlin.neo4j.conf.dbms.auto_index.nodes.enabled=true
gremlin.neo4j.conf.dbms.auto_index.relationships.enabled=true

но 1. http://localhost:8182/?gremlin=g.addV("test").property(id,"abc") ошибка возврата

{
"message": "Vertex does not support user supplied identifiers",
"Exception-Class": "java.lang.UnsupportedOperationException",
"exceptions": [
"java.lang.UnsupportedOperationException"
],
"stackTrace": "java.lang.UnsupportedOperationException: Vertex does not support user supplied identifiers\n\tat org.apache.tinkerpop.gremlin.structure.Vertex$Exceptions.userSuppliedIdsNotSupported(Vertex.java:163)\n\tat org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph.addVertex(Neo4jGraph.java:162)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep.processNextStart(AddVertexStartStep.java:91)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)\n\tat org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:192)\n\tat org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.fill(IteratorUtils.java:62)\n\tat org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.list(IteratorUtils.java:85)\n\tat org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.asList(IteratorUtils.java:382)\n\tat org.apache.tinkerpop.gremlin.server.handler.HttpGremlinEndpointHandler.lambda$channelRead$1(HttpGremlinEndpointHandler.java:247)\n\tat org.apache.tinkerpop.gremlin.util.function.FunctionUtils.lambda$wrapFunction$0(FunctionUtils.java:36)\n\tat org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:269)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:834)\n"
}

и 2. Я добавил вершину с мультиметкой http://localhost:8182/?gremlin=g.addV("test::test2") и запрос http://localhost:8182/?gremlin=g.V().hasLabel("test") вернуть пустой узел

{
"requestId": "ec79c0f7-e4aa-485e-ace4-6e534e8252c5",
"status": {
"message": "",
"code": 200,
"attributes": {
"@type": "g:Map",
"@value": []
}
},
"result": {
"data": {
"@type": "g:List",
"@value": []
},
"meta": {
"@type": "g:Map",
"@value": []
}
}
}

Как я могу заставить их работать? Я нашел некоторые вещи, но я не смог найти опцию конфигурации. пожалуйста помоги http://tinkerpop.apache.org/docs/current/reference/#_elementidstrategy http://tinkerpop.apache.org/docs/current/reference/#_multi_label

1 Ответ

0 голосов
/ 15 ноября 2018

Neo4j не разрешает присвоение идентификатора. Если вы хотите назначить свой собственный идентификатор, тогда это должно быть свойство типа:

g.addV("test").property("id","abc")
...