Sembra che LIKE non sia supportato nelle query di Cypher.clausola LIKE in CYPHER Query
C'è qualche altro costrutto che eseguirà lo stesso compito?
Per esempio:
start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;
Sembra che LIKE non sia supportato nelle query di Cypher.clausola LIKE in CYPHER Query
C'è qualche altro costrutto che eseguirà lo stesso compito?
Per esempio:
start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;
utilizzando le espressioni regolari: http://neo4j.com/docs/developer-manual/current/#query-where-regex
start n = node(*) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
Ero preoccupato che regex potesse essere la risposta. Grida;) Tuttavia, lo rende più potente di un semplice LIKE – johnc
sì, sono anche preoccupato per regexp ma è il modo diretto ora. ma puoi ancora usare un indice lucene come questo: 'start n = node: your_index ('proprietà: * SUBSTRING *') restituisce n.name, n;' – ulkas
e usa i parametri invece dei valori letterali: 'start n = node (*) dove n.Nome = ~ {like} restituisce n.Name, n; 'params: {" come ":". * SUBSTRING. * "}, anche node (*) come hint della clausola iniziale in un non grafico use-case, quindi usa il suggerimento di ricerca indice di ulkas –
Se si vuole rendere case insensitive
MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n;
sì ma le prestazioni fanno schifo! – ekkis
Grazie mille :) – JochemQuery
No Le espressioni regolari necessari:
start n = node(*) where n.Name contains "substring" return n.Name, n;
Vai a the cypher refcard e scorrere fino alla sezione predicati. Troverai questa e altre cose utili.
Vuoi maiuscole/minuscole? Conversione in minuscolo:
start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;
purtroppo, è sensibile alle maiuscole e minuscole e non esiste la versione senza distinzione tra maiuscole e minuscole. ugh! – ekkis
@ekkis risolto, vedi modifica. –
sì, funzionerà, così come '= ~ '(? I) sottostringa'' ma non ha un buon rendimento. il più basso() impedisce l'uso dell'indice, quindi sui big data si bloccherà. Ho una richiesta di funzionalità aperta qui: https://github.com/neo4j/neo4j/issues/9450 – ekkis
Il refcard è un fatto utile per segnalibro: http://neo4j.com/docs/cypher-refcard/current/ elenca tutti supportati stringa corrispondente operatori, per esempio. –