2012-09-10 7 views
9

Apache Solrで最後に索引付けされたレコードを取得/検索する方法を知りたいですか?Solrで最後に索引付けされたレコードを取得する方法は?

既存のレコードが更新されると、すべてのレコードが終了します。その最後のインデックス付きレコードを取得します。あなたはそれが追加されたときにレコードに現在の日付/時刻を置き、あなたのSolrスキーマに「タイムスタンプ」フィールドを追加することができ

答えて

14

感謝..

<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

他の方法はありません...? Solrのインデックス作成にフィールドを追加する必要があるためです... 返信ありがとうございます... –

+0

私はこれを行う最も信頼できる方法であると信じています。タイムスタンプフィールドはSolrによって追加され、正確であることが保証されています。あなたは@ parvinの答えに行くことができますが、それはあなたのdocidフィールドが連続していて、ソートできると仮定します。 –

8

は、次のクエリを使用してインデックス付きの順序で文書を並べ替えることができます。

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

or 

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

ありがとう、それは私が必要なものです。 – Oyeme

+0

docidのクロスマージを数えても安全ですか? http://osdir.com/ml/solr-user.lucene.apache.org/2011-12/msg01178.htmlを参照してください。 –

+0

http://lucene.472066.n3を理解するためのレスポンスを変更するため、_docid_を使用しないでください。 nabble.com/Get-DocID-after-Document-insert-td556278.html – aName

関連する問題