使用带有特殊字符的Neo4j值的密码查询

使用带有特殊字符的Neo4j值的密码查询,neo4j,cypher,Neo4j,Cypher,我有一个neo4j节点,其属性readid的值为HWI-ST884:57:1:1101:13989:754210 在shell中执行查询时,似乎必须转义:,-和字符。为了到达我想要的节点 start n=node:readID('readid:HWI\\-ST884\\:57\\:1\\:1101\\:13989\\:75421\\#0') return n; 有没有办法不必逃避这些角色 backtick似乎适用于属性字段,但不适用于值搜索词被传递给Lucene,因此Lucene查询语法适用于

我有一个neo4j节点,其属性readid的值为HWI-ST884:57:1:1101:13989:754210

在shell中执行查询时,似乎必须转义:,-和字符。为了到达我想要的节点

start n=node:readID('readid:HWI\\-ST884\\:57\\:1\\:1101\\:13989\\:75421\\#0') return n;
有没有办法不必逃避这些角色


backtick似乎适用于属性字段,但不适用于值

搜索词被传递给Lucene,因此Lucene查询语法适用于此处。您可以尝试:

start n=node:readID('readid:"HWI-ST884:57:1:1101:13989:75421#0"') return n;

很抱歉,我不知道,但是为什么在转义这些特殊字符时需要双重转义呢。Lucene支持转义作为查询语法一部分的特殊字符。当前列表的特殊字符是+-&&&| |!{ } [ ] ^ ~ * ? : \ 要转义这些字符,请在字符前使用\。例如,要搜索1+1:2,请使用以下查询:\1\+1\\:2