स्ट्रिंग की शुरुआत में अक्षरों की खोज करना बहुत आसान है। आपको केवल उस दृश्य की आवश्यकता है जो उस स्ट्रिंग को उत्सर्जित करता है जिसे आप कुंजी के रूप में खोजना चाहते हैं। मान लें कि उपयोगकर्ता इनपुट एक चर q
में संग्रहीत है, फिर आप उस दृश्य को पैरामीटर startkey=q
और endkey=q+"\ufff0"
के साथ कॉल करते हैं।
यहां की चाल खोज स्ट्रिंग में उच्चतम संभव यूनिकोड चरित्र को जोड़ना है। सॉर्ट ऑर्डर में, यह स्ट्रिंग q
से शुरू होने वाली किसी भी चीज़ के बाद आता है। (@titanoboa द्वारा सुझाए गए समाधान की तुलना में इसे कार्यान्वित करना बहुत आसान है, जहां आपको उपयोगकर्ता इनपुट के अंतिम अक्षर को "वृद्धि" करने की आवश्यकता है।)
यदि आप भी एक के बीच में शब्दों को ढूंढने में सक्षम होना चाहते हैं
function(doc) {
if (doc.title) {
var words = {};
doc.title.replace(/\w+/g, function(word) {
words[word.toLowerCase()] = true;
});
for (w in words) {
emit(w, doc);
}
}
}
बेशक इस छोटे से तार के लिए ही सलाह दी जाती है: स्ट्रिंग (उदाहरण के लिए "कोलबर्ट रिपोर्ट" जब "सह" टाइप), तो आप इस तरह एक दृश्य का उपयोग कर सकते हैं। लंबे ग्रंथों में खोज के लिए आपको couchdb-lucene जैसे पूर्ण-पाठ खोज ऐड-ऑन में देखना चाहिए।
स्रोत
2010-09-29 15:11:40
उच्चतम संभव यूनिकोड वर्ण 'fff0' और 'ffff' क्यों नहीं है? – Jez
@ जेज़ यह एक अच्छा सवाल है, मुझे नहीं पता कि मैंने फिर से \ \ufff0' क्यों लिखा था। मुझे लगता है कि सही कोड बिंदु '\ u {10FFFF}' होगा, लेकिन मैंने इसका परीक्षण नहीं किया है। (Https://en.wikipedia.org/wiki/UTF-8#Description) –