Exécution d'une requête cypher insensible à la casse

Est-il possible d'exécuter une requête cypher insensible à la casse sur neo4j?

Essayer ça: http://console.neo4j.org/

Quand je tape dans ceci:

start n=node(*) 
match n-[]->m 
where (m.name="Neo") 
return m

Il renvoie une ligne. Mais quand je tape dans ceci:

start n=node(*) 
match n-[]->m 
where (m.name="neo") 
return m

Il ne retourne rien; parce que le nom est enregistré comme "Neo". Est-il un moyen simple d'exécuter la casse des requêtes?

30
demandé sur gzg 2012-11-18 14:23:41

2 réponses

Oui, en utilisant des expressions régulières insensibles à la casse:

WHERE m.name =~ '(?i)neo'

Http://neo4j.com/docs/developer-manual/current/cypher/clauses/where/#where-case-insensitive-regular-expressions

39
répondu Volker Pacher 2017-01-16 13:49:57

Une Autre façon serait:

WHERE LOWER(m.Name) = LOWER("Neo")

Et si vous utilisez le Client Neo4j (. net):

Client.Cypher.Match("(m:Entity)")
    .Where("LOWER(m.Name) = LOWER({name})")
    .WithParam("name", inputName)
    .Return(m => m.As<Entity>())
    .Results
    .FirstOrDefault();
9
répondu rotgers 2017-01-05 16:01:54