1

すべてのドキュメントのインデックスを格納するメインの solr サーバー (solr1) があり、次の機能を実装したいと考えています

2.ドキュメントの変更をsolr1からsolr2にコピーするために、間隔を置いてデルタインポートを行います。- ドキュメントは、この期間中に削除、更新、作成される場合があります。

-- DB から Solr にデータをインポートするために SqlEntityProcessor によってサポートされる関数として。

http://wiki.apache.org/solr/DataImportHandler#SolrEntityProcessor
SolrEntityProcessor は、(構成ファイルのクエリ パラメータを使用して) クエリに基づいて、ある Solr から別の solr へのフル インポートを行うことができますが、後でデルタ インポートを行うことはできないようです。 : SqlEntityProcessor でサポートされている deltaImportQuery および deltaQuery 構成はありません。

この機能を実装するにはどうすればよいですか?
助けてくれてありがとう:)

4

1 に答える 1

1

これをシミュレートできる Solr フィールドとフィルター クエリを使用して、deltaImportQuery と同等のものを実装できるはずです。

timestampSolr スキーマにフィールドを追加することをお勧めします。以下は、solr example schemaのフィールド定義です。

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

これにより、Solr インデックスにレコードが最後に追加された時刻を記録するフィールドが作成され、フィルター クエリfqオプションを SolrEntityProcessor クエリに追加して、タイムスタンプ フィールド値がフィルター クエリで DateMath を使用してインポート ハンドラーが最後に実行された時刻。

DateMath がどのように機能するかについて、いくつかの参考文献があります。

于 2012-10-12T15:05:43.110 に答える