सब, मैं कुछ काम करने वाले नमूने के आधार पर Twitter typeahead
और Bloodhound
लागू करने की कोशिश कर रहा था, लेकिन मैं कोड नीचे नहीं समझ सकता।Bloodhound.tokenizers.obj.whitespace को समझना
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('songs'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
मूल कोड नीचे जैसा दिखता है।
var songlist = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('songs'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 10,
remote: '/api/demo/GetSongs?searchTterm=%QUERY'
});
official document सिर्फ इतना कहा:
datumTokenizer - हस्ताक्षर (गृहीत) के साथ एक समारोह है कि स्ट्रिंग टोकन की एक सरणी में एक गृहीत बदल देती है। आवश्यक है।
queryTokenizer - हस्ताक्षर (क्वेरी) वाला एक फ़ंक्शन जो को स्ट्रिंग टोकन की एक सरणी में एक क्वेरी को बदलता है। आवश्यक है।
इसका क्या अर्थ है? क्या कोई मुझे इसके बारे में और बताने में मदद कर सकता है ताकि मुझे बेहतर समझ हो?
ये वास्तव में दस्तावेज़ीकृत हैं। मेरी धारणा यह है कि जब कोई उपयोगकर्ता कोई प्रश्न पूछता है, तो कहें, "कुत्ते बिल्ली", व्हाइटस्पेस क्वेरी टोकेनाइज़र सफेद जगह पर विभाजित होता है, जिसके परिणामस्वरूप '["कुत्ता", "बिल्ली"] जैसे सरणी होती है। फिर, जब परिणाम आते हैं, तो डाटाम टोकनाइज़र भी उनको विभाजित करता है। इसलिए, यदि आपके पास "कुत्तों और बिल्लियों रॉक आउट" के गीत नाम के साथ परिणाम है, तो यह एक सरणी में भी विभाजित हो जाएगा। अंत में, ब्लडहाउंड दो सरणी की तुलना करता है, और यदि क्वेरी सरणी की संपूर्णता डाटाम सरणी में है, तो यह इसे एक मैच मानती है। मैं इस पर लगभग 80% निश्चित हूं। – mlissner