2013-06-28 4 views
5

के साथ ल्यूसीन पेजिनेशन मेरे पास ल्यूसीन के साथ ऐसा कोड है। क्या कोई ल्यूसीन के साथ पेजिनेशन बनाने के बारे में नमूना या टिप्स प्रदान कर सकता है?TopScoreDocCollector

Query q = queryParser.parse(useQuery); 
TopScoreDocCollector collector = TopScoreDocCollector.create(maxReturn, true); 
searcher.search(q, collector); 

धन्यवाद।

+0

जांच को मंजूरी दे दी जवाब इस पोस्ट में: [Lucene 4 पृष्ठांकन] [1] [1]: http://stackoverflow.com/a/24533377/1080485 –

उत्तर

2

आप TopDocsCollector.topDocs(int) का उपयोग कर परिणामों के किसी विशेष पृष्ठ का प्रतिनिधित्व करने वाले टॉपडॉक्स प्राप्त कर सकते हैं। याद रखें कि start तर्क कितने दस्तावेजों का प्रतिनिधित्व करता है में यह शुरू कर देना चाहिए, नहीं कितने "पृष्ठ", तो कुछ इस तरह:

TopDocs hits = collector.topDocs(maxReturn*page); 

आमतौर पर उचित है (जहां page 0 से गिने है)

+1

कैसे मैं एक 'Sort' वस्तु के साथ इस गठबंधन करते हैं? मैं सॉर्ट करना चाहता हूं और उसके बाद से एक टुकड़ा निकालना चाहता हूं। –

+1

@ माइकल-ओ आप नहीं करते हैं। 'सॉर्ट' के साथ 'टॉपस्कोरडॉककॉल्टर' का उपयोग करना समझ में नहीं आता है। 'टॉपस्कोरडॉककॉल्टर' स्पष्ट रूप से शीर्ष स्कोर द्वारा टाइप किया जाता है। यदि आप एक कलेक्टर का उपयोग करना पसंद करते हैं, तो इसके बजाय ['TopFieldCollector'] (http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/search/TopFieldCollector.html) का उपयोग करें। आप पहली क्वेरी के लिए 'indexSearcher.search (क्वेरी क्वेरी, int n, सॉर्ट सॉर्ट)' को भी कॉल कर सकते हैं, और उसके बाद के बाद के पृष्ठों के लिए, 'IndexSearcher.searchAfter (स्कोर डॉक के बाद, क्वेरी क्वेरी, int n, सॉर्ट सॉर्ट)' पर कॉल करें। , आखिरी परिणाम पास करने के बाद "बाद" तर्क के रूप में लौटा। – femtoRgon

+0

ठीक है, धन्यवाद। मैं पहले से ही उल्लिखित 'खोज' विधि का उपयोग करता हूं लेकिन 'searchAfter' मदद नहीं करेगा क्योंकि मैं उन्हें एक आरईएसटी एपीआई के साथ बेनकाब करता हूं और मेरे पास बाद में कॉल पर' डॉक 'नहीं है। मुझे कुछ खोज की आवश्यकता होगी (खोज, से, आकार, क्रमबद्ध करें) '। न तो 'टॉपस्कोप डॉकसी ...', 'टॉपफिल्ल्डसी ...' 'खोज' नहीं 'दुर्भाग्यवश, करेगा। एकमात्र विकल्प जो मैं देखता हूं वह सभी 'स्कोर डॉक्स' प्राप्त कर रहा है और मैन्युअल रूप से पेजिनेशन को कार्यान्वित कर रहा है। –