Ich versuche, ein einfaches Autocomplete-System ähnlich wie die Demo hier zu machen: http://autocomplete.redis.io/ aber aus irgendeinem Grund kann ich nicht ZRANGEBYLEX
die richtigen Ergebnisse zurückgeben. Hier ist, was ich auf der Redis CLI so mache:So imitieren Autovervollständigungssuche mit 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
Mein Set sieht gut aus:
> 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"
Und wenn ich ZRANGEBYLEX
wie diesen das Ergebnis macht Sinn:
zrangebylex autocomplete [e [eight
1) "eight"
Aber wenn ich alle Elemente in der Menge, die Start mit einem "e" bekommen möchte, versuche ich dies (das ist sehr ähnlich, was die Autocomplete-Demo zeigt), aber es gibt nicht die r ight Ergebnisse:
> zrangebylex autocomplete [e [e(0xff)
(empty list or set)
Was muss man als params zum ZRANGEBYLEX
Befehl verwenden, um für sie alle Strings mit „e“ und alles, was danach beginnen zu passen?
Es ist sicher. Was genau machen die Zitate? –
Anscheinend erzwinge redis-cli, den Wert als eine literale Zeichenfolge zu behandeln. Bei Verwendung eines regulären Clients aus Code werden die Anführungszeichen jedoch nicht benötigt. –
@ItamarHaber was bedeutet '\ xff'? Ich verstehe nicht – BlackMamba