2009-06-10 16 views
6

का उपयोग कर सटीक मिलान ढूँढना मैं ल्यूसीन का उपयोग कर कंपनी खोज एपीआई पर काम कर रहा हूं। मेरे Lucene कंपनी सूचकांक 2 कंपनियों मिल गया है: 1.Abigail एडम्स राष्ट्रीय Bancorp, Inc 2.National Bancorpल्यूसीन खोज एपीआई

तो राष्ट्रीय Bancorp, तो केवल कंपनी # 2 (। यानी राष्ट्रीय Bancorp) में उपयोगकर्ता प्रकार होना चाहिए लौटा और # 1 ..... यानी नहीं। केवल सटीक मैचों को वापस किया जाना चाहिए। मैं इस कार्यक्षमता को कैसे प्राप्त करूं?

पढ़ने के लिए धन्यवाद।

+0

भविष्य के खोजकर्ता: यदि आप सिर्फ लुसीन-अनुक्रमित सेवा खोज रहे हैं, तो सोमैनाथ सबाट का उत्तर बिना किसी अपवॉट के उत्तर में कम से कम एक उदाहरण में सही लगता है - वाक्यांश को दोहरे उद्धरणों में रखें। Musicbrainz के खिलाफ सत्यापित किया गया। –

उत्तर

11

आप इस क्षेत्र पर अनुक्रमण और खोज के लिए KeywordAnalyzer का उपयोग कर सकते हैं। कीवर्ड विश्लेषक संपूर्ण स्ट्रिंग के लिए केवल एक टोकन उत्पन्न करेगा।

+0

क्या आप इसका उत्तर दे सकते हैं? http://stackoverflow.com/questions/899542/problem-using-same-instance-of-indexsearcher-for- multult-requests –

1

आप अपने प्रश्नों को सही ढंग से समझ चुके हैं या नहीं, इस पर निर्भर करते हुए आप अपनी आवश्यकताओं पर पुनर्विचार करना चाहेंगे। अगर मैंने आपको गलत समझा तो कृपया मेरे साथ बेकार रहें।

बस विचार के लिए एक छोटे से भोजन:

  • आप केवल सटीक मैचों लौटे, तो आप पहली जगह में क्यों खोज रहे हैं चाहते हैं?

  • क्या आप सुनिश्चित हैं कि उपयोगकर्ता सटीक मिलान की अपेक्षा करता है? मैं आमतौर पर यह मानते हुए खोज करता हूं कि खोज इंजन लापता शब्दों को समायोजित करेगा।

  • मान लीजिए उपयोगकर्ता नेशनल बैंक लेकिन नेशनल बैंक खोज करने पर आपका सूचकांक में नहीं रह गया था। क्या आप अभी भी अबीगैल एडम्स नेशनल बैंकार्प, इंक परिणामों से बाहर निकलना चाहते हैं क्योंकि यह सटीक मिलान नहीं था?

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

1

यह ऐसा कुछ है जो शिंगल फ़िल्टर के उपयोग की गारंटी दे सकता है। यह फ़िल्टर एक साथ कई शब्दों को समूहित करता है। उदाहरण के लिए, 3 टोकन के एक शिंगलफिल्टर के साथ अबीगैल एडम्स नेशनल बैंकार्प (एक साधारण व्हाइटस्पेस विश्लेषक) [अबीगैल], [अबीगैल एडम्स], [अबीगैल एडम्स नेशनल], [एडम्स नेशनल बैंकार्प], [एडम्स नेशनल], [एडम्स] , [राष्ट्रीय], [नेशनल बैंककॉर्प] और [बैंककॉर्प]।

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

आप उपयोग के मामले के आधार पर प्रश्न समय पर शिंगल फ़िल्टर भी लागू करना चाहते हैं।

1

मैंने एक ही समस्या के लिए बहुत मदद के साथ बहुत कुछ किया। थोड़ी देर के लिए मेरे सिर खरोंचने के बाद मुझे समाधान मिला। स्ट्रिंग को डबल कोट्स के भीतर खोजें, जो आपकी समस्या का समाधान करेगा।

नेशनल बैंककॉर्प # 1 और # 2 दोनों वापस लौटाएगा लेकिन "नेशनल बैंकार्प" केवल # 2 लौटाएगा।

संबंधित मुद्दे