2014-02-19 33 views
0

工作,我想在Neo4j的1.9.5在我的web应用程序中使用不区分大小写的查询与模式匹配的建议搜索大小写不敏感的暗号查询不Neo4j的

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有可能吗? 他们的任何选择/模式做这种东西? 谢谢。

回答

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 

与node_auto_index

在Neo4j的1.9

配置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 
+0

谢谢,试过升级到2.0的Neo4j但问题而来自Neo4j的1.9.5访问数据到Neo4j 2.0提供以下错误:启动Neo4j服务器失败:错误启动org.neo4j.kernel.EmbeddedGraphDatabase。 – user2725064

0

你可以做到这一点区分大小写

match (m:person) where m.username=~'.*[email protected]*' and m.is_active=True return m 

钝感与

match (m:person) where m.username=~'(?i).*[email protected]*' and m.is_active=True return m