2014-02-19 68 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