2015-05-28 10 views
6

मैं एक एसओएलआर कोर के खिलाफ एक क्वेरी चलाता हूं और जैसे fq: {!frange l=0.7 }query($q) फ़िल्टर का उपयोग करके परिणाम को प्रतिबंधित करता हूं। मुझे पता है कि एसओएलआर स्कोर का पूर्ण अर्थ नहीं है, लेकिन 0.7 (केवल एक उदाहरण) की गणना उपयोगकर्ता इनपुट और कुछ हेरिस्टिक पर आधारित है, जो काफी अच्छी तरह से काम करती है।स्थिर एसओएलआर स्कोर प्राप्त करना

समस्या निम्न है: मैं अपने मूल में कुछ दस्तावेज़ अपडेट करता हूं। अपडेट किए गए फ़ील्ड केवल मेटा डेटा फ़ील्ड हैं, जो खोज के ऊपर से संबंधित नहीं हैं। लेकिन क्योंकि एक अद्यतन आंतरिक रूप से एक डिलीट + डालने, आईडीएफ और दस्तावेज़ गणना बदलती है। और इसलिए गणना स्कोर करें। अचानक मेरी क्वेरी अलग-अलग परिणाम देती है।

जैसा कि योनिक ने मुझे here समझाया, यह व्यवहार डिज़ाइन द्वारा है। तो मेरा सवाल है: सबसे आसान क्या है और स्कोर और मेरे क्वेरी के आउटपुट को स्थिर रखने के लिए न्यूनतम तरीका क्या है?

प्रत्येक प्रतिबद्धता के बाद समस्या को हल करने के बाद अनुकूलन चलाना, लेकिन आश्चर्य है कि कुछ आसान और कम महंगा है।

उत्तर

1

आपको वास्तव में अनुकूलित करने की आवश्यकता है। जब आप इंडेक्स सोलर को अनुकूलित करते हैं तो सभी दस्तावेजों को अभी तक इंगित नहीं किया गया है और क्वेरी को स्थिर बना दिया गया है। ऐसा इसलिए होता है क्योंकि इस मेटा डेटा जानकारी का निर्माण दस्तावेज़ को अद्यतन होने पर हर समय महंगा होता है। इस solr के कारण बस अनुकूलित करने पर ऐसा करते हैं। यह देखने का एक अच्छा तरीका है कि आपकी अनुक्रमणिका कम या ज्यादा स्थिर है ... जब आप सोलर एपीआई एक्सेस करते हैं तो आप Num Docs और Max Doc जानकारी देख सकते हैं। यदि Max DocNum Docs से अधिक है तो यह आपके द्वारा प्रासंगिकता गणना को प्रभावित करने वाले कुछ पुराने उत्पाद हैं। सूचकांक को अनुकूलित करना इन दो संख्याओं को फिर से बराबर बनाया गया है। यदि ये संख्याएं बराबर हैं तो आप भरोसा कर सकते हैं कि आईडीएफ की गणना सही ढंग से की जाती है।

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