लुसीन सटीक आदेश

मेरे पास इस दीर्घकालिक मुद्दे को समझ में नहीं आया है कि एक सभ्य लुसीन सॉर्ट या रैंकिंग को कैसे कार्यान्वित किया जाए। मान लें कि मेरे पास शहरों और उनकी आबादी की एक सूची है। अगर कोई "नया" या "लंदन" खोजता है, तो मैं आबादी द्वारा आदेशित उपसर्ग मैचों की सूची चाहता हूं, और मेरे पास एक उपसर्ग खोज और एक प्रकार के क्षेत्र के साथ काम करना है, जहां जनसंख्या क्षेत्र है, आईई न्यू मैक्सिको, न्यूयॉर्क ; या लंदन, लोंडोंडेरी।

हालांकि मैं हमेशा सटीक मिलान नाम शीर्ष पर होना चाहता हूं। तो "लंदन" के मामले में सूची "लंदन, लंदन, लोंडोंडेरी" दिखानी चाहिए जहां पहला लंदन यूके में है और दूसरा लंदन कनेक्टिकट में है, भले ही लंदनडैरी की लंदन सीटी की तुलना में अधिक आबादी हो।

क्या किसी के पास एक प्रश्न समाधान है?

0
ro fr bn

3 उत्तर

मेरा वर्तमान समाधान एक सटीक खोजकर्ता और एक उपसर्ग खोजकर्ता बनाना है, दोनों रिवर्स आबादी द्वारा क्रमबद्ध किया गया है, और फिर सटीक हिट से शुरू होने वाली सभी हिट कॉपी करें, उपसर्ग हिट पर जाकर। यह मेरे परिणामों को थोड़ा अधिक परेशान करता है, मुझे लगता है कि यह होना चाहिए।

इसके अलावा मैंने डुप्लिकेट को खत्म करने के लिए हैश का उपयोग किया लेकिन बाद में ल्यूसीन डुप्लिकेट को हटाने के लिए, एक सटीक खोज (आवश्यक नहीं) के साथ उपसर्ग खोज (एमएसटी) की एक बूलियन क्वेरी में उपसर्ग खोजकर्ता को बदल दिया। हालांकि यह और भी अपर्याप्त लग रहा था।

Edit: Moved to a comment (since the feature now exists): Yuval F Thank you for your blog post ... How would the sort comparator know that the name field "london" exactly matches the search term "london" if it cannot access the search term?

0
जोड़ा

dlamblin, मुझे यह देखने दो कि क्या मुझे यह सही तरीके से मिलता है: आप एक उपसर्ग-आधारित क्वेरी बनाना चाहते हैं, और उसके बाद परिणामों को आबादी के अनुसार क्रमबद्ध करना चाहते हैं, और शायद सटीक मैचों के लिए वरीयता के साथ सॉर्ट ऑर्डर को गठबंधन कर सकते हैं। मेरा सुझाव है कि आप इस प्रकार से खोज को अलग करें और सॉर्टिंग के लिए कस्टमस्टर का उपयोग करें: यहां एक ब्लॉग प्रविष्टि एक कस्टम का वर्णन करती है सॉर्टर क्लासिक लुसीन पुस्तक इस अच्छी तरह से वर्णन करता है।

0
जोड़ा
आपके ब्लॉग पोस्ट के लिए धन्यवाद, यह बताते हुए कि एक प्रकार के तुलनित्र को कैसे कार्यान्वित किया जाए, जिसे आसानी से 2 कक्षाओं को परिभाषित करने की आवश्यकता नहीं होती है। हालांकि, सॉर्ट तुलनित्र खोज शब्द को जानने के बिना केवल दो दस्तावेज़ों पर काम कर सकता है, यह परिणाम को रैंक नहीं कर सकता है जैसा कि मैंने उन्हें अपने प्रश्न में वर्णित किया है। सॉर्ट तुलनित्र कैसे पता चलेगा कि नाम फ़ील्ड "लंदन" खोज शब्द "लंदन" से बिल्कुल मेल खाता है यदि यह खोज शब्द तक नहीं पहुंच सकता है?
जोड़ा लेखक dlamblin, स्रोत
डांग, यही वह है जो मुझे इसके बारे में सोचने के लिए नहीं मिलता है (हालांकि यह थोड़ी देर के बाद से मैं उस कोड के सामने था)। अब यह बहुत अधिक समझ में आता है और सहायक है।
जोड़ा लेखक dlamblin, स्रोत
मुझे लगता है कि आप निम्न कार्य कर सकते हैं: स्कोरडॉककंपेटर इंटरफ़ेस (ब्लॉग उदाहरण में AZ09Comparator) को लागू करने वाला वर्ग, क्वेरी चलाने के दौरान सेट होने के लिए "खोज शब्द" सदस्य होगा। तुलनात्मक विधि (ब्लॉग उदाहरण में तुलना करें)) इस क्षेत्र को उस समय तक पहुंचा सकता है जब इसे बुलाया जाता है, और एक सटीक मिलान वाले किसी दस्तावेज़ से सटीक मिलान वाले किसी दस्तावेज़ को रैंक नहीं किया जाता है।
जोड़ा लेखक Yuval F, स्रोत

के लिए एपीआई

Sortcomparator

कहते हैं

फ़ील्ड में प्रत्येक अद्वितीय शब्द के लिए एक अलग तुलनात्मक है - यदि   कुछ दस्तावेजों में एक ही शब्द है   फ़ील्ड, कैश सरणी होगी   प्रविष्टियां जो इसका संदर्भ देती हैं   तुलनीय

आप एक आवेदन कर सकते हैं

FieldSortedHitQueue

to the sortcomparator which has a Comparator field for which the api कहते हैं ...

संबंधित एक तुलनित्र स्टोर करता है   प्रत्येक फ़ील्ड द्वारा क्रमबद्ध किया जा रहा है।

इस प्रकार शब्द को तदनुसार क्रमबद्ध किया जा सकता है

0
जोड़ा