2014-02-19 3 views
0

Я пытаюсь использовать регистрозависимости запрос с сопоставлением с образцом в Neo4j 1.9.5 для предлагаемого поиска в вебе-приложениирегистронезависим высчитывать запрос с пунктом матча не работает в 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

Спасибо, судимый модернизировать к Neo4j 2.0, но проблемы при доступе к данным из 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 

 Смежные вопросы

  • Нет связанных вопросов^_^