2012-02-27 11 views
9
  • मैं Solr 3.3.0 उदाहरण फ़ोल्डर
  • solrQueryParser defaultOperator = "या"

मेरे समस्या यह है कि Solr नहीं करता 'है का उपयोग कर बॉक्स से बाहर काम कर उपयोग कर रहा हूँ जब मैं एकाधिक शब्द वाक्यांश खोजता हूं तो टी अच्छे नतीजे लौटता प्रतीत होता है।Solr पर एकाधिक शब्द प्रश्नों

निम्नलिखित खोज कोई परिणाम नहीं लौटाता है।

  1. http://localhost:8080/solr/select/?q=roof+fixing

हालांकि, जब मैं छत या फिक्सिंग के लिए खोज, वे दोनों कुछ अच्छे परिणाम देते हैं।

  1. http://localhost:8080/solr/select/?q=roofरिटर्न 4 परिणाम
  2. http://localhost:8080/solr/select/?q=fixingरिटर्न 3 परिणाम

"छत फिक्सिंग" के लिए क्वेरी पर, मैं Solr वापस जाने के लिए 7 परिणाम की उम्मीद है। छत के लिए 4 रिकॉर्ड और के लिए 3 रिकॉर्ड फिक्सिंग।

क्या ऐसा होने के लिए आवश्यक कोई विशेष कॉन्फ़िगरेशन आवश्यक है?

उत्तर

8

आपने अभी अपनी क्वेरी गलत तरीके से व्यक्त की है।

व्यवस्थापक पृष्ठ से निम्न क्वेरी का प्रयास करें:

(छत या फिक्सिंग)

या, यदि आप को खोजने के लिए है कि एक विशेष क्षेत्र में हैं:

FIELDNAME: (छत या फिक्सिंग)

जब आप एसओएलआर को "छत फिक्सिंग" जैसी क्वेरी देते हैं तो आप प्रभावी रूप से सभी दस्तावेजों के लिए पूछ रहे हैं जिनके पास डिफ़ॉल्ट क्षेत्र में "छत" और "फिक्सिंग" है (या फ़ील्ड का डिफ़ॉल्ट डिस्क्स सेट। केवल बदलने का एकमात्र तरीका जिसका मतलब है कि क्वेरी को फिर से लिखना है उपयोगकर्ता टाइप करते हैं। हम यही करते हैं, लेकिन बड़े पैमाने पर। हमारे पास एक फ्रंट एंड इंटरफेस है जो विकल्पों का पूरा समूह प्रदान करता है और इससे एसओएलआर क्वेरी उत्पन्न करता है। लोग एक विशिष्ट क्षेत्र में एक खोज शब्द दर्ज कर सकते हैं और यदि एक से अधिक शब्द हैं और इसे उद्धृत नहीं किया गया है, तो हम AND जोड़ते हैं। फिर हम या उन सभी क्षेत्रों को एक साथ भरते हैं जो कुछ भरे हुए हैं। कुछ फ़ील्ड विशेष हैं और उनमें MIN और MAX संस्करण है जो हम :[0 TO 125000] श्रेणी सीमा में बदल जाते हैं। और कुछ ड्रॉपडाउन हैं जो एकाधिक चयनों का समर्थन करते हैं जिन्हें हम एक OR में भी बदलते हैं, उदा। State:("WA" OR "CA" OR "OR" OR "NV")

+0

मुझे लगता है कि मैं आपके बिंदु को समझता हूं लेकिन, मैं उपयोगकर्ताओं को फ्रंट एंड इंटरफेस के माध्यम से खोज करने दे रहा हूं, इसलिए मैं उपयोगकर्ताओं को * (छत या फिक्सिंग) टाइप करने के लिए नहीं कह सकता हूं। – Filype

+0

अतिरिक्त स्पष्टीकरण के लिए धन्यवाद, फिर भी, मुझे http: // localhost टाइप करके अधिक परिणाम नहीं मिलते हैं: 8080/solr/select /? Q = (छत% 20OR% 20fixing) – Filype

+1

फिलीपे, अगर आप दे रहे हैं उपयोगकर्ता फ्रंट एंड की खोज करते हैं, और खोज के लिए या व्यवहार की अपेक्षा करते हैं, आपको एसओएलआर को भेजने से पहले बैक एंड पर अपनी क्वेरी को प्रोसेस करना चाहिए। ऊपर बताए अनुसार, आपको अपने मूल्यों को ब्रांड्स के साथ तैयार करना चाहिए। यदि आप OR या AND जोड़ना चाहते हैं, तो उपयोगकर्ता को एक विकल्प दें, इसका पता लगाएं, और फिर एसओएलआर को पास करने से पहले अपने एसओएलआर क्वेरी में उनको तैयार करें और इंजेक्ट करें। – Atomox

0

Solr जरूरी "छत या फिक्सिंग" एक परिणाम के रूप में दोनों "छत" शामिल हो सकते हैं और "फिक्सिंग" के लिए नहीं लौटेगा 7 परिणाम नहीं। मान लीजिए "छत" में 3 परिणाम हैं, "फिक्सिंग" में 4 है, लेकिन दोनों "छत" और "फिक्सिंग" 2 परिणामों में दिखाई देते हैं। आपको "छत या फिक्सिंग" की खोज पर केवल 5 परिणाम मिलेगा क्योंकि सोलर डुप्लिकेट परिणाम नहीं लौटाएगा।

क्या आपने "+" चिह्न के बजाय यूआरएल-एन्कोडेड स्पेस ("% 20") का उपयोग करने का प्रयास किया है?यदि डिफ़ॉल्ट ऑपरेटर है या आपको उस ऑपरेटर को शामिल करने की आवश्यकता नहीं है।

+0

छत% 20 फ़िक्सिंग भी 0 परिणाम देता है, मैं आपके बिंदु को समझता हूं, भले ही यह 7 या 5 था, मुझे कम से कम 4 परिणाम की उम्मीद होगी। – Filype

+0

क्या यह संभव है कि जिस क्षेत्र पर आप खोज रहे हैं वह टोकननाइज्ड नहीं है? –

+0

मेरी व्यवस्थापक स्क्रीन का कहना है कि यह एक फ़ील्ड प्रकार है TEXT_EN – Filype

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