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";
我能猜出你的问题是什么,但如果你明确地问每个人,它可能会有用。。。