1

Solrj を使用して数時間ごとに更新するインデックスがあります。更新には新しいドキュメントが含まれており、インデックス内のドキュメントを削除するための更新も含まれています。一部はまったく更新されません (更新後に削除されたと見なされます)。

更新ごとに、更新されたすべてのドキュメントのバージョンフィールドを変更したいと考えています。現在私は使用しています:

<field name="_version_" type="long" indexed="true" stored="true" />

問題は、各 Doc がその作成の UNIX 時間を取得することです。すべての新しい/更新されたドキュメントのバージョンフィールドを自動インクリメントし、検索クエリの結果を最新バージョンでフィルター処理する方法はありますか?

4

1 に答える 1

2

フィールドの詳細_version_:

  • _version_Solr によって内部的に使用/制御されます
  • _version_ドキュメントでフィールド値の更新が発生するたびに、フィールド値が自動的にインクリメントされます。したがって、インデックスには更新されたドキュメントが 1 つだけ存在します。
  • 検索クエリが発行されると、Solr はデフォルトで更新されたドキュメント バージョンを返します

このフィールドは、Realtimeハンドラーを取得してupdateLog定義する場合に必要です。

それが説明し、方向性を提供することを願っています。

注: ウィキによると、パーツ参照はまだコミットされていません

「部分参照」を明示的に扱いたい場合は、Solr wiki Update Semanticsを参照してください。

于 2012-12-25T07:11:57.993 に答える