2012-10-18 18 views
8

से अप्रासंगिक पहलू फ़िल्टर करें मैंने अपनी समस्या के समाधान के लिए चारों ओर घूमने में घंटों बिताए हैं। मैंने लोगों को जो कुछ हासिल करने की कोशिश कर रहा है उसके करीब प्रश्न पूछने को देखा है, लेकिन अब तक कोई भी एक ही सवाल नहीं पूछ रहा है। मुझे देखने दो कि क्या मैं इसे पर्याप्त रूप से समझा सकता हूं:सोलर परिणाम

कहें कि मैं जूता स्टोर हूं। मेरी वेबसाइट पर मेरे पास तीन पृष्ठ हैं: एक पुरुषों के जूते के लिए, एक महिला के जूते के लिए और एक बच्चे के जूते के लिए। मान लें कि मेरी जूता तालिका में prod_group फ़ील्ड है। तो पुरुषों के पृष्ठ के लिए क्वेरी q = prod_group: पुरुष होगी। अब मान लें कि मैं जिन पहलुओं को प्रदान करना चाहता हूं वह ब्रांड है। q = prod_group: पुरुष & filter.field = brand

मेरे पास जो मुद्दा है, वह पहलू परिणाम मेरे डेटाबेस में सभी ब्रांड दिखा रहा है, न केवल पुरुषों के जूते के लिए प्रासंगिक ब्रांड। दूसरे शब्दों में, मुझे पहले से ही पता है कि "माई लिटिल टट्टू" लाइन में शून्य पुरुषों के जूते हैं। मैं ब्रांड फीट में माई लिटिल टट्टू को प्रदर्शित नहीं करना चाहता हूं। Facet.mincount सेट करना मुझे वही नहीं है जो मुझे चाहिए। यदि मैं एक प्रश्न q = prod_group चलाता हूं: पुरुष & fq = color: red & filter.field = brand, ग्राहक उपभोक्ता को दिखाना चाहता है कि ब्रांड "ताकतवर जो" में कोई लाल जूते नहीं है, इसलिए मुझे अभी भी पहलुओं की आवश्यकता है 0.

मूल रूप से जो मैं उम्मीद कर रहा हूं वह आधार क्वेरी से परिणामों के आधार पर पहलू परिणाम है। अब तक इसे पूरा करने के लिए एकमात्र तरीका यह है कि दो प्रश्नों को चलाने के लिए: केवल मूल क्वेरी के साथ पहला और पहलू .mincount = 1 को प्रासंगिक पहलुओं की सूची प्राप्त करने के लिए और उसके बाद वास्तविक क्वेरी facet.mincount के साथ 0 पर वापस करें मैं पता लगा सकता हूं कि कुछ विकल्पों को भूरे रंग से बाहर करना है जो पहले से बनाए गए पहलू विकल्पों के आधार पर उपलब्ध नहीं हैं।

दो प्रश्नों को चलाने से सुरुचिपूर्ण से कुछ कम लगता है। facet.pivot लंबे समय तक मदद कर सकता है, लेकिन हम अभी भी 3.x का उपयोग कर रहे हैं और मुझे नहीं लगता कि जल्द ही किसी भी समय बदल रहा है। क्या मुझे कुछ क्वेरी/स्कीमा/कॉन्फ़िगरेशन विकल्प याद आया है जो मुझे एक प्रश्न के साथ करने की ज़रूरत है?

उत्तर

0

क्या आपने facet.query विकल्प देखा है। विवरण से ऐसा लगता है कि यह आपको जो चाहिए उसे पूरा करेगा।

यह पैरा आपको एक पहलू गिनती उत्पन्न करने के लिए लुसीन डिफ़ॉल्ट वाक्यविन्यास में मनमाने ढंग से क्वेरी निर्दिष्ट करने की अनुमति देता है। डिफ़ॉल्ट रूप से, फ़ेसटिंग "फ़ील्ड" के लिए अद्वितीय शब्दों की गिनती देता है, जबकि facet.query आपको मनमाने ढंग से शब्दों या अभिव्यक्तियों के लिए गणना निर्धारित करने की अनुमति देता है।

2

आप Facet Excluding Filters नामक एक विकल्प की जांच कर सकते हैं, जो आपको फ़िल्टर किए गए फ़िल्टर के बावजूद पहलुओं को वापस करने की अनुमति देगा।

उदा।
आप पुरुषों fq=prod_group:men पर facet.mincount 1 के साथ फ़िल्टर करते हैं जो इस फ़िल्टर पर लागू सभी ब्रांड पहलू वापस कर देगा।
फिर जब आप कुछ रंग fq=color:red आप को छोड़कर फिल्टर
का उपयोग कर दो पहलुओं वापस परिणामों के साथ एक और एक फिल्टर के बिना प्राप्त कर सकते हैं पर उप फिल्टर उदा fq={!tag=dt}color:red&facet.field={!ex=dt key=nonfilter_brand}brand&facet.field=brand

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

0
fq=prod_group:men 

छानने भी पहलू परिणाम के लिए लागू है, जो q मानकों के साथ ऐसा नहीं है बनाता है।

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