आप Solr पर 1.4 + रहे हैं, तो आप रीसेंसी के आधार को बढ़ाने के लिए समारोह प्रश्नों में "एमएस" समारोह, और मानक, पाठ्यपुस्तक दृष्टिकोण के लिए उपयोग किया है:
recip(ms(NOW,startTime),3.16e-11,1,1)
एमएस अपने दो तर्कों के बीच मिलीसेकंड की संख्या देता है। पूरी तरह से अभिव्यक्ति 1 साल पहले डॉक्स के लिए स्कोर द्वारा बढ़ाती है, 1 साल पहले डॉक्स के लिए 1/2 द्वारा, 2 साल पहले डॉक्स के लिए 1/3 तक .. (http://wiki.apache.org/solr/FunctionQuery#Date_Boosting देखें, क्योंकि शॉन टिम ने बताया।)
आपके मामले में आप भविष्य में दिनांकित डॉक्स है, और उन लोगों के ऊपर समारोह से एक नकारात्मक स्कोर सौंपा जाएगा, तो आप शायद एक निरपेक्ष मान में फेंक करना चाहते हैं, इस तरह:
recip(abs(ms(NOW,startTime)),3.16e-11,1,1)
abs (एमएस (अब, स्टार्टटाइम)) स्टार्टटाइम के बीच # मिलीसेकंड देगा और अब, गैर-नकारात्मक होने की गारंटी है।
यह एक अच्छी शुरुआत होगी। यदि आप चाहते हैं, तो आप 3.16e-11 को ट्विक कर सकते हैं यदि यह बहुत आक्रामक है या पर्याप्त आक्रामक नहीं है।
टेंगेंशियल रूप से, एमएस फ़ंक्शन केवल ट्रीडेट श्रेणी के आधार पर फ़ील्ड पर काम करेगा, न कि क्लासिक डेट और लेगेसीडेट क्लास। यदि आपकी schema.xml उदाहरण 1.4 पर Solr 1.4 के लिए आधारित थी, तो आपका दिनांक फ़ील्ड शायद पहले से ही सही प्रारूप में है।
क्या आपने सोलर-उपयोगकर्ता से पूछने की कोशिश की? –