redis

2016-11-30 11 views
5

में चाबी के लिए वाक्यांश मिलान मैं redis में निम्नलिखित कुंजी:redis

"542 136 mountain road" 
"542 136 mountainview road" 
"542136 mountain road" 
"542 136 mountain" 
"136 mountain road" 
"136 mountain" 

मैं कुंजी जो वाक्यांश 136 mountain शामिल प्राप्त करना चाहते हैं। ग्लोब-शैली पैटर्न के साथ, मैं वर्तमान में सभी प्रश्नों को पूरा करने के लिए 4 प्रश्न बना रहा हूं। कुल में

scan 0 MATCH '*[\ ]136 mountain[\ ]*' 

scan 0 MATCH '*[\ ]136 mountain' 

scan 0 MATCH '136 mountain[\ ]*' 

scan 0 MATCH '136 mountain' 

इन चार प्रश्नों वापसी होगी 4 परिणाम:

"542 136 mountain road" 
"542 136 mountain" 
"136 mountain road" 
"136 mountain" 

अपने आदानों का हिस्सा अगर वहाँ पैटर्न स्ट्रिंग को बदलने ताकि सभी 4 परिणामों में प्राप्त किया जा सकता के किसी भी बेहतर तरीका है कृपया एक प्रश्न

उत्तर

0

मुझे विश्वास नहीं है कि यह एक ग्लोब-स्टाइल पैटर्न के साथ हासिल किया जा सकता है।

मैं यह भी ध्यान रखूंगा कि भले ही वाक्यांशों से मेल खाने वाले पैटर्न का मिलान किया गया हो, एससीएएन कैसे काम करता है, इस प्रकृति के कारण आपको पूरे डेटासेट (अलग-अलग कॉल करने) के माध्यम से फिर से दिखने की आवश्यकता होगी ताकि आप जो परिणाम देख रहे हों के लिये। फिर आपको इस तथ्य पर विचार करना होगा कि पुनरावृत्ति अवधि के दौरान आपका डेटा बदल रहा है।

डॉक्स

यह ध्यान रखें कि मैच फिल्टर के बाद तत्वों, संग्रह से प्राप्त किए गए हैं लागू किया जाता है के लिए महत्वपूर्ण है से सिर्फ ग्राहक के लिए डेटा लौटने से पहले। इसका अर्थ यह है कि यदि पैटर्न संग्रह के अंदर बहुत कम तत्वों से मेल खाता है, तो एससीएएन अधिकांश पुनरावृत्तियों में कोई तत्व वापस नहीं करेगा।

संदर्भ: https://redis.io/commands/scan#the-match-option

-

विकल्प 1

उपयोग स्कैन पूरे डाटासेट के माध्यम से पुनरावृति और आगे आवेदन स्तर पर डेटा फ़िल्टर करना।

विकल्प 2

की गारंटी देता है की किस प्रकार आप देख रहे हैं और आप कितना डेटा के आधार पर, आप KEYS इस्तेमाल कर सकते हैं। यह आमतौर पर एक अनुशंसित दृष्टिकोण नहीं है, लेकिन यह विचार करने का एक विकल्प है।

उदाहरण: KEYS '*136 mountain*'

बहुत स्कैन दृष्टिकोण की तरह, आप के लिए आप क्या देख रहे हैं की तुलना में बड़ी प्रतिक्रिया है और अपनी पसंद के भाषा का उपयोग करने के लिए आगे परिणाम फिल्टर करने के लिए की आवश्यकता होगी।

विकल्प 3

सूचकांक आवेदन स्तर पर कुछ पूर्व प्रसंस्करण करके अपने डेटा।यदि कुंजी आपके वांछित पैटर्न से मेल खाती है तो इसे SET/क्रमबद्ध सेट पर जोड़ें।

विकल्प 4

एक लुआ स्क्रिप्ट लिख लें।