लैंग्वेज स्टेमिंग पाठ खोज में एक सामान्य आधार से प्राप्त शब्दों को जोड़ने का प्रयास करने के लिए एक एल्गोरिदम का उपयोग करता है (उदाहरण के लिए "रनिंग" "रन" से मेल खाना चाहिए)। यह उपसर्ग मिलान (उदा. "ब्लू" मिलान "ब्लूबेरी") से भिन्न है जिसे आप स्वतः पूर्ण सुविधा के लिए लागू करना चाहते हैं।
सबसे प्रभावी ढंग से typeahead.js
का उपयोग करने के लिए MongoDB पाठ खोज के साथ मैं prefetch
. पर ध्यान केंद्रित करने का सुझाव दूंगा टाइपहेड में समर्थन:
-
एक
keywords
बनाएं संग्रह जिसमें आपके संग्रह में उपयोग किए जाने वाले सामान्य शब्द (शायद उपयोग आवृत्ति गणना के साथ) हैं। आप इस संग्रह को मैप चलाने/कम करने के द्वारा बना सकते हैं पूरे संग्रह में आपके पास टेक्स्ट सर्च इंडेक्स है, और शब्द सूची को समय-समय पर वृद्धिशील मानचित्र/घटाएं जैसे ही नए दस्तावेज़ जोड़े जाते हैं। -
क्या आपका एप्लिकेशन
keywords
. से JSON दस्तावेज़ जेनरेट करता है? अद्वितीय खोजशब्दों के साथ संग्रह (शायद सूची को प्रबंधनीय/प्रासंगिक रखने के लिए शब्द आवृत्ति के आधार पर "लोकप्रिय" खोजशब्दों तक सीमित)।
फिर आप टाइपहेड के prefetch
के साथ क्लाइंट-साइड स्वतः पूर्ण के लिए जेनरेट किए गए कीवर्ड JSON का उपयोग कर सकते हैं फ़ीचर:
$('.mysearch .typeahead').typeahead({
name: 'mysearch',
prefetch: '/data/keywords.json'
});
typeahead.js
prefetch
को कैश कर देगा क्लाइंट-साइड खोजों के लिए स्थानीय स्टोरेज में JSON डेटा। जब खोज फ़ॉर्म सबमिट किया जाता है, तो आपका आवेदन सर्वर-साइड MongoDB का उपयोग कर सकता है पाठ खोज
प्रासंगिकता क्रम में पूर्ण परिणाम वापस करने के लिए।