2012-09-10 9 views
9

मैं जानना चाहता हूं कि अपाचे सोलर में पिछले अनुक्रमित रिकॉर्ड को कैसे प्राप्त/खोजना है ..?सोलर में अंतिम अनुक्रमित रिकॉर्ड कैसे प्राप्त करें?

जब मौजूदा रिकॉर्ड अपडेट किया जाता है तो यह सभी रिकॉर्ड्स का अंत हो जाता है ... इसलिए मैं वह अंतिम अनुक्रमित रिकॉर्ड प्राप्त करना चाहता हूं।

धन्यवाद ..

उत्तर

14

आप अपने Solr स्कीमा रिकॉर्ड में वर्तमान दिनांक/समय डालता है जब यह जोड़ा जाता है के लिए एक 'टाइमस्टैम्प' फ़ील्ड जोड़ सकते हैं।

<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/> 

फिर, इस क्षेत्र को अवरोही क्रम में एक तरह से करते हैं और पहले रिकॉर्ड नवीनतम हो जाएगा। इस तरह एक क्वेरी यह करना चाहिए: -

http://localhost:8080/solr/core-name/select/q=*%3A*&start=0&rows=1&sort=timestamp+desc

+0

क्या कोई अन्य तरीका नहीं है ...? क्योंकि मुझे सोलर इंडेक्सिंग में फ़ील्ड जोड़ना है ... उत्तर के लिए धन्यवाद ... –

+0

मुझे विश्वास है कि यह ऐसा करने का सबसे विश्वसनीय तरीका है, क्योंकि टाइमस्टैम्प फ़ील्ड सोलर द्वारा जोड़ा जाएगा और सटीक होने की गारंटी है। आप @ परवीन के जवाब के साथ जा सकते हैं, लेकिन यह मान लेगा कि आपका डॉकिड फ़ील्ड अनुक्रमिक है और इसे हल किया जा सकता है। –

8

आप निम्न क्वेरी का उपयोग अनुक्रमित आदेश से दस्तावेजों सॉर्ट कर सकते हैं।

http://localhost:8983/solr/select?q=*:*&sort=_docid_ asc 

or 

http://localhost:8983/solr/select?q=*:*&sort=_docid_ desc 
+1

धन्यवाद, यही मुझे चाहिए। – Oyeme

+0

क्या यह डॉकिड क्रॉस विलय पर भरोसा करना सुरक्षित है? http://osdir.com/ml/solr-user.lucene.apache.org/2011-12/msg01178.html –

+0

_docid_ का उपयोग न करें क्योंकि यह बदल रहा है कि http: //lucene.472066.n3 को समझने के लिए प्रतिक्रिया को बदल रहा है। nabble.com/Get-DocID-after-Document-insert-td556278.html – aName

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