2012-06-06 9 views
5

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

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

मैं अपनी खोज में विश्लेषकों को शामिल करने के बारे में कैसे जाउंगा और मैं इसे पहलुओं के साथ कैसे उपयोग कर सकता हूं?

उत्तर

9

लचीला खोजें अनुक्रमित डिफ़ॉल्ट रूप से एक स्ट्रिंग, आम तौर पर यह उन्हें टोकन में, टूट जाता है उदाहरण के लिए: "दीवार के ऊपर फॉक्स कूद" अलग-अलग शब्दों में tokenized हो जाएगा "फॉक्स", "कूद" के रूप में, "पर" , "दिवार"।

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

उदाहरण के लिए, यदि आप "दीवार पर फॉक्स कूद" की खोज करते हैं, तो आपको कोई परिणाम नहीं मिलेगा। इसके बजाय "फॉक्स" खोजना आपको परिणाम देगा।

एपीआई का विश्लेषण करें या विश्लेषण अवधि , अनुक्रमित स्ट्रिंग tokenize करने के लिए नहीं है, ताकि आप ठीक तरह से सटीक तार के लिए खोज सकते हैं, जो विशेष रूप से उपयोगी है जब आप पूरे पर सांख्यिकीय पहलुओं क्या करना चाहते हैं लचीला खोजें बताता है तार।

टोकनकार अलग-अलग शब्दों में स्ट्रिंग को टोकननाइज़ करें और उन्हें लोचदार खोज में स्टोर करें। जैसा कि बताया गया है, इन टोकन को खोज एपीआई का उपयोग करने के खिलाफ पूछताछ की जा सकती है।

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

+0

आप "दीवार पर फॉक्स कूद" कर सकते हैं और यदि आप इसे एक प्रश्न के रूप में करते हैं तो यह आपको सभी शब्दों के साथ सही परिणाम देगा: 'client.prepareSearch()। SetQuery (QueryBuilders.matchQuery (NODE_PATH_TO_SEARCH, "दीवार पर फॉक्स कूद"))। मेरे लिए यह क्वेरी स्ट्रिंग में दिए गए शब्दों के आधार पर लगता है और परिणाम – Adrian