2012-01-04 10 views
46

SOLR docs, राज्य कि फिल्टर प्रश्नों, मुख्य क्वेरी के विपरीत, दस्तावेज़ स्कोर को प्रभावित नहीं करते। क्या कोई यह समझा सकता है कि इसका मतलब क्या है, अधिमानतः एक उदाहरण के साथ।SOLR फिल्टर-क्वेरी बनाम मुख्य-क्वेरी

धन्यवाद।

उत्तर

48

एक फ़िल्टरQuery केवल दस्तावेज़ आईडीएस स्टोर करता है। इससे दस्तावेज़ों को शामिल/बहिष्कृत करने के लिए फ़िल्टर को लागू करना बहुत तेज़ हो जाता है। इसका अच्छा उदाहरण देश, उत्पाद प्रकार, उपलब्धता इत्यादि के आधार पर खोज से उत्पादों को फ़िल्टर करते समय

एक सामान्य क्वेरी सटीक कार्य कर सकती है, लेकिन "प्रासंगिकता" निर्धारित करने के लिए इसकी एक जटिल जटिल प्रणाली है। मेरा मानना ​​है कि दस्तावेज यह इंगित कर रहा है कि स्कोरिंग केवल मुख्य प्रश्न पर ही होती है, न कि फ़िल्टर क्वेरी पर। यह क्वेरी की गति भी बढ़ाएगा।

तो, मैं के लिए क्वेरी कर सकते हैं:

description:Kohler AND productType:Toilet 

या मैं के लिए क्वेरी कर सकते हैं:

description:Kohler 
with a FQ of productType:Toilet 

परिणाम एक ही होगा, लेकिन स्कोर अलग होगा। साथ ही, यदि आपको productType:Toilet के लिए पूरे दिन कई अलग-अलग प्रश्न मिलते हैं, तो फ़िल्टरक्वियर को समग्र क्वेरी समय तेज़ी से कैश किया जाएगा।

+1

तो अगर उदाहरण के लिए "उत्पाद प्रकार" पर शब्द बढ़ाना है, तो परिणाम मुख्य प्रकार के बजाय फ़िल्टरक्वायर में सेट किया गया है, तो परिणाम अलग-अलग क्रमबद्ध किए जा सकते हैं, जैसे कि यदि यह क्वेरी में है, तो उन दस्तावेज़ों के साथ उच्च उत्पाद टाइप स्कोर शीर्ष पर होगा, जबकि यदि यह फ़िल्टरक्वायर में है तो उच्च उत्पाद वाले उन दस्तावेज़ों को टाइप किया जा सकता है क्योंकि स्कोर फ़िल्टर लागू नहीं होने के बाद से लागू नहीं किया जाता है। क्या मैं आपको सही समझ रहा हूँ? – mrd3650

+0

सही। हालांकि, अगर आप मुख्य प्रश्न में उत्पाद प्रकार को एक और खंड के रूप में रखते हैं, तो आप किसी अन्य उत्पाद प्रकार को वापस नहीं प्राप्त करेंगे। तो यह सीमित मूल्य का हो सकता है। लेकिन, आपने जो कहा वह मतलब है कि आप समझते हैं कि यह कैसे काम करता है। – rfeak

+0

हां आपके पास एक बिंदु है, क्योंकि मैं गलत रूप से उत्पाद प्रकार पर एक एफटीएस मान रहा था (इसलिए एक से अधिक उत्पाद टाइप संभावित रूप से वापस आ सकते थे, लेकिन आम तौर पर * प्रकार पर कोई एफटीएस नहीं है)। धन्यवाद। – mrd3650

3

fq मूल्यों की एक निश्चित सूची के लिए है। यदि आप q = sunroof + स्टीरियो पर खोज करते हैं और fq = Mustang solr q पैरामीटर पर टेक्स्ट विश्लेषण करेगा क्योंकि q = sunroof + स्टीरियो और q = स्टीरियो + सनरूफ एक ही परिणाम सेट वापस कर देगा। लेकिन जब fq के माध्यम से खोज फ़िल्टर करते हैं तो fq param पर कोई विश्लेषण लागू नहीं होता है और यह माना जाता है कि सभी लौटाए गए दस्तावेज़ fq से मेल खाते हैं, इसलिए मिलान करने वाले दस्तावेज़ों के स्कोर को संशोधित करने की आवश्यकता नहीं है।

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