我正在尝试在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 [例外] => ClassCastException
如何解决这个问题? 在neo4j 2.0中有可能吗? 他们做这种东西的选择/模式是什么? 谢谢。
答案 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
在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
答案 1 :(得分: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