2012-09-10 32 views
9

Apache Solr. Dizindeki son endeksli kaydı nasıl bulacağımı// aramayı öğrenmek istiyorum.Solr'da son endeksli kayıt nasıl elde edilir?

Varolan kayıt güncellendiğinde, tüm kayıtların sonuna gider ... bu yüzden bu son dizinlenmiş kaydı almak istiyorum. Bunu eklendiğinde kayıt içine geçerli tarih/saati koyar sizin Solr şemaya bir 'damgası' alanını ekleyebilirsiniz

cevap

14

teşekkürler ...

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

Ardından, bu alana göre azalan sırada bir sıralama yapın ve ilk kayıt en yeni olanı olacaktır. Böyle bir sorgu yapmak gerekir: -

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

+0

Başka yol yok mu ...? çünkü Solr indeksleme alanına alan eklemek zorundayım ... Yanıtla için teşekkürler ... –

+0

Bunu yapmak için en güvenilir yol olduğuna inanıyorum, çünkü zaman damgası alan Solr tarafından eklenecek ve doğru olduğu garantilidir. Parvin'in cevabı ile devam edebilirsin, ama bu, docid alanınızın sıralı olduğunu ve sıralanabileceğini varsayar. –

8

Aşağıdaki sorguyu kullanarak endeksli emriyle belgeleri sıralayabilirsiniz.

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

or 

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

Teşekkürler, ihtiyacım olan buydu. – Oyeme

+0

Docid çapraz birleştirmeler üzerinde güvenmek güvenli midir? http://osdir.com/ml/solr-user.lucene.apache.org/2011-12/msg01178.html –

+0

'u, _docid_' ı kullanmayın çünkü http: //lucene.472066.n3. nabble.com/Get-DocID-after-Document-insert-td556278.html – aName

İlgili konular