0

我正在尝试在 neo4j 1.9.5 中使用不区分大小写的查询和模式匹配来在我的 Web 应用程序中进行建议搜索

start n=node(*) 
MATCH n-[Lives]->m
WHERE m.City_Name='Belgium' and n.First_Name =~ '(?i)p.*' return n

但它给出了以下错误:Ljava.lang.String; 不能转换为 java.lang.String [exception] => ClassCastException

如何解决这个问题?在neo4j 2.0中可以吗?他们有做这种事情的任何选择/模式吗?谢谢你。

4

2 回答 2

0

您的两个属性之一是数组而不是字符串。

此外,您可能想从索引中查找城市。

在 Neo4j 2.0 中

create index on :City(City_Name);

MATCH n-[Lives]->(m:City)
WHERE m.City_Name='Belgium' and n.First_Name =~ '(?i)p.*' return n

在 Neo4j 1.9 中使用 node_auto_index

配置自动索引neo4j.properties并将 City_Name 添加到索引字段列表中。然后使用:

START m=node:node_auto_index(City_Name="Belgium")
MATCH n-[Lives]->(m)
WHERE n.First_Name =~ '(?i)p.*'
RETURN n
于 2014-02-19T19:47:46.753 回答
0

你可以做到区分大小写

match (m:person) where m.username=~'.*amruta_rao@gmail.com.*' and m.is_active=True return m

并且对

match (m:person) where m.username=~'(?i).*amrutA_rao@gmail.com.*' and m.is_active=True return m
于 2015-03-17T08:59:28.413 回答