Java org.neo4j.cypher.internal.parser.v1_9.CypherParserImpl.parse(neo4j url解析异常)

Java org.neo4j.cypher.internal.parser.v1_9.CypherParserImpl.parse(neo4j url解析异常),java,parsing,neo4j,cypher,Java,Parsing,Neo4j,Cypher,我在neo4j中创建包含URL-s的节点 node.setProperty("subject","http://www.w3.org/2001/XMLSchema#Melinda_Gates"); 查询: String subject = "http://www.w3.org/2001/XMLSchema#Melinda_Gates" String query = "start n=node(*) where n.subject ?= " + subject

我在
neo4j
中创建包含URL-s的节点

          node.setProperty("subject","http://www.w3.org/2001/XMLSchema#Melinda_Gates");
查询:

 String subject = "http://www.w3.org/2001/XMLSchema#Melinda_Gates"
 String query = "start n=node(*) where n.subject ?= " + subject
            + " return n";
 ExecutionResult rs = e.execute(query);
例外情况:

位于org.neo4j.cypher.internal.parser.v1_9.CypherParserImpl.parse(CypherParserImpl.scala:47) 位于org.neo4j.cypher.CypherParser.parse(CypherParser.scala:44) 在org.neo4j.cypher.ExecutionEngine$$anonfun$prepare$1.apply(ExecutionEngine.scala:80) 在org.neo4j.cypher.ExecutionEngine$$anonfun$prepare$1.apply(ExecutionEngine.scala:80) 位于org.neo4j.cypher.internal.LRUCache.getOrElseUpdate(LRUCache.scala:37) 位于org.neo4j.cypher.ExecutionEngine.prepare(ExecutionEngine.scala:80) 位于org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:72) 位于org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:67)


正则表达式的密码语法使用
=~
,而不是
?=
。此外,正则表达式必须匹配整个字符串

因此,如果您正在寻找一种方法来确定
n.subject
是否包含
subject
变量的值,这可能适合您:

 String query = "start n=node(*) where n.subject =~ '.*" + subject + ".*' return n";
或者,从neo4j 2.3开始,您可以使用以下更简单的查询:

 String query = "start n=node(*) where n.subject CONTAINS '" + subject + "' return n";

我能猜出你的问题是什么,但如果你明确地问每个人,它可能会有用。。。