在全文查询中转义Lucene特殊字符

时间:2019-05-02 11:54:12

标签: neo4j

我正在使用neo4j 3.5.4的一项新功能:全文搜索索引。而且我需要使用“名称”字段获取节点,其中值包含特殊字符,例如*?-等。

我已经使用默认的re.escape函数对术语字符串进行转义。

结果查询如下:

error message: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: No trusted certificate found

转义前的输入词如下:CALL db.index.fulltext.queryNodes( "property_search_index", "name:\?\?\?\.\.\.\/\/\/\*\*\*~" ) YIELD node AS property, score

查询返回下一条错误消息:

???...///***

所以,问题是如何正确地转义此字符串?还是neo4j错误?

1 个答案:

答案 0 :(得分:0)

因此,问题的根源是反斜杠。由于lucene查询用双引号引起来,所以我们必须重复反斜杠。因此查询应如下所示:

<TextBlock x:Name="two" Text="text"/>
<TextBlock x:Name="one" Text="{Binding Text, ElementName=two}"/>

如果将此查询包装到apoc函数中,则必须复制反斜杠。