समाधान:
डिफ़ॉल्ट_भाषा
सेट करें और भाषा_ओवरराइड
एक ही शाब्दिक मूल्य के लिए (आपके मामले में "एन")।
मैं यहां कैसे पहुंचा...
मैंने वही समस्या मारा, वह भी मोंगो 2.6.1 पर।
मेरे मामले में मैंने एक भाषा_ओवरराइड
. के साथ अनुक्रमणिका बनाई है एक ऐसे भाषा क्षेत्र की ओर इशारा करते हुए जहां पहले से ही असमर्थित मानों वाले दस्तावेज़ मौजूद थे (उदा. 'ar' - अरबी)।
यहां बताया गया है कि मैं इंडेक्स कैसे बना रहा था:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "language"
});
मैं उम्मीद कर रहा था कि यह default_language
पर वापस आ जाएगा जब भाषा_ओवरराइड
value असमर्थित है, लेकिन जाहिरा तौर पर नहीं। यहाँ मोंगो क्या कहता है:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"ok" : 0,
"errmsg" : "language override unsupported: ar",
"code" : 17262
}
ठीक है, ठीक है, इसलिए सूचकांक नहीं बनाया गया था, लेकिन मुझे इसे language_override के बिना बनाने में सक्षम होना चाहिए, है ना? गलत - mongo मुझे वही त्रुटि देता है भले ही मेरे पास अब language_override निर्दिष्ट नहीं है ।
ऐसा लगता है कि सूचकांक बनाने के असफल प्रयास ने सूचकांक के कुछ टूटे हुए संस्करण को पीछे छोड़ दिया है जो कहीं भी दिखाई नहीं देता है इसलिए मैं इसे छोड़ नहीं सकता (यह db.users.getIndexes()में प्रकट नहीं होता है) कोड> और इसे नाम से छोड़ने से काम नहीं चलता)।
अंत में मैं language_override
. सेट करके इंडेक्स को ठीक करने में कामयाब रहा शाब्दिक मूल्य 'एन' के लिए, इस तरह:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "en"
});
... जिसका मोंगो जवाब देता है:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}
हुर्रे।