Подтвердить что ты не робот

Как имитировать поиск автозаполнения с помощью Redis ZRANGEBYLEX?

Я пытаюсь сделать простую систему автозаполнения очень похожей на демо: http://autocomplete.redis.io/, но по какой-то причине я не могу получить ZRANGEBYLEX для верните правильные результаты. Вот что я делаю в CLI Redis:

> 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

Мой набор выглядит хорошо:

> 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"

И если я использую ZRANGEBYLEX, как это, результат имеет смысл:

zrangebylex autocomplete [e [eight
1) "eight"

Но если я хочу получить все элементы в наборе, которые начинаются с "e", я пробую это (что очень похоже на демонстрацию автозаполнения), но оно не возвращает правильные результаты:

> zrangebylex autocomplete [e [e(0xff)
(empty list or set)

Что нужно использовать в качестве параметров для команды ZRANGEBYLEX, чтобы она соответствовала любым строкам, начинающимся с "e" и что-то еще после этого?

4b9b3361

Ответ 1

Это сделает трюк:

127.0.0.1:6379> zrangebylex autocomplete [e "[e\xff"
1) "eight"
2) "eleven"

Изменить. Как отметил Итамар Хабер в своем комментарии ниже, при использовании клиентского кода вам нужны кавычки не.