मैं MongoDB उपयोग कर रहा हूँ, और मैं निम्नलिखित संरचना के साथ दस्तावेजों का संग्रह है:सूचकांक सीमा मोंगो पर Regex खोजें
{
fName:"Foo",
lName:"Barius",
email:"[email protected]",
search:"foo barius"
}
मैं एक समारोह है कि search
मैदान पर एक नियमित अभिव्यक्ति खोज प्रदर्शन करेंगे निर्माण कर रहा हूँ । प्रदर्शन को अनुकूलित करने के लिए, मैंने इस संग्रह को खोज क्षेत्र पर अनुक्रमित किया है। हालांकि, चीजें अभी भी धीमी हैं। इसलिए मैं कोई नमूना क्वेरी पर एक explain()
भाग गया:
db.Collection.find({search:/bar/}).explain();
जीतने योजना के तहत देखते हुए, मैं देख रहा हूँ निम्नलिखित सूचकांक सीमा का इस्तेमाल किया:
"search": [
"[\"\", {})",
"[/.*bar.*/, /.*bar.*/]"
]
दूसरे सेट समझ में आता है - यह कुछ भी होता है, जो से रहा है बार में कुछ भी है। हालांकि, पहला सेट मुझे परेशान करता है। ऐसा लगता है कि ""
की सीमाओं में {}
अनन्य शामिल है। मुझे चिंता है कि सीमाओं का यह अतिरिक्त सेट मेरी क्वेरी को धीमा कर रहा है। क्या यह रखना जरूरी है? यदि ऐसा नहीं है, तो मैं इसे शामिल होने से कैसे रोक सकता हूं?
: यह रिक्त स्थान के आधार पर प्रत्येक शब्द अनुक्रमित, तो यह अधिक का उपयोग
यहाँ दोनों शब्द "foo" और "barius" है, जो हो सकता है पर एक अनुक्रमित खोज करने के लिए सक्षम हो जाएगा कि के लिये दस्तावेज है क्या आपको एक ही समस्या है, क्या आपको स्पष्टीकरण मिला? – kirhgoff
@kirhgoff आप किस मोंगो डीबी का उपयोग कर रहे हैं? – barbakini
@kirhgoff आप 'mongoDB देशी' या 'mongoose' का उपयोग कर रहे हैं। इसे देखें - http://voidcanvas.com/mongoose-vs-mongodb-native/ –