Sto cercando di creare un semplice sistema di autocompletamento simile alla demo qui: http://autocomplete.redis.io/ ma per qualche motivo non riesco a ottenere lo ZRANGEBYLEX
per restituire i risultati corretti. Ecco quello che sto facendo sul Redis CLI:Come imitare la ricerca con completamento automatico con Redis ZRANGEBYLEX?
> zadd autocomplete 0 one 0 two 0 three 0 four 0 five 0 six 0 seven 0 eight 0 nine 0 ten 0 eleven 0 twelve 0 thirteen 0 fourteen 0 fifteen
Il mio set sembra buono:
> zrangebylex autocomplete - +
1) "eight"
2) "eleven"
3) "fifteen"
4) "five"
5) "four"
6) "fourteen"
7) "nine"
8) "one"
9) "seven"
10) "six"
11) "ten"
12) "thirteen"
13) "three"
14) "twelve"
15) "two"
E se uso ZRANGEBYLEX
come questo il risultato ha un senso:
zrangebylex autocomplete [e [eight
1) "eight"
Ma se voglio ottenere tutti gli elementi nel set che inizi con con una "e", provo questo (che è molto simile a quello mostrato dalla demo del completamento automatico) ma non restituisce la r risultati ight:
> zrangebylex autocomplete [e [e(0xff)
(empty list or set)
Cosa bisogna usare come params al comando ZRANGEBYLEX
in modo che esso per adattarsi a qualsiasi stringa che inizia con "e" e qualsiasi altra cosa dopo?
Lo fa sicuramente. Cosa fanno esattamente le virgolette? –
Apparentemente forza redis-cli per trattare il valore come una stringa letterale. Tuttavia, quando si utilizza un client normale dal codice, le virgolette non sono necessarie. –
@ItamarHaber qual è il significato di '\ xff'? non capisco – BlackMamba