2014-06-25 3 views
11

मैं डेमो की तरह एक साधारण स्वत: पूर्ण प्रणाली बनाने की कोशिश कर रहा हूं: http://autocomplete.redis.io/ लेकिन किसी कारण से मुझे सही परिणाम लौटने के लिए ZRANGEBYLEX नहीं मिल रहा है। यहाँ मैं Redis CLI पर क्या कर रहा है: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 

मेरे सेट अच्छा लग रहा है:

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

लेकिन अगर मैं सेट में सभी आइटम प्राप्त करना चाहता हूं कि "ई" के साथ शुरू करें, तो मैं इसे आज़माएं (जो स्वत: पूर्ण डेमो दिखाता है) के समान है लेकिन यह आर वापस नहीं करता है ight परिणाम:

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

क्या एक इसके साथ "ई" और कुछ और बाद में शुरुआत किसी भी तार से मिलान करने के लिए आदेश में ZRANGEBYLEX आदेश को पैरामीटर के रूप में उपयोग करना चाहिए?

उत्तर

15

इस चाल करना होगा:

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

संपादित: नीचे उसकी टिप्पणी में Itamar हेबर द्वारा बताया गया है, जब एक कोड ग्राहक का उपयोग कर, आप नहीं उद्धरण की जरूरत है।

+0

यह निश्चित रूप से करता है। उद्धरण वास्तव में क्या करते हैं? –

+3

मूल्य को शाब्दिक स्ट्रिंग के रूप में मानने के लिए स्पष्ट रूप से रेडिस-क्ली को मजबूर करें। कोड से नियमित ग्राहक का उपयोग करते समय उद्धरणों की आवश्यकता नहीं होती है। –

+0

@ItamarHaber '\ xff' का अर्थ क्या है? मुझे समझ में नहीं आता – BlackMamba

संबंधित मुद्दे