2016-03-23 14 views
1

RabbitMQキュー内のオブジェクトを索引付けするのにLuceneを使用しています.RabbitMQに同じオブジェクトの複数のバージョンがある場合は、検索語に基づいて既存のレコードを見つけて削除し、新しいレコードを作成します)。Lucene.netによる索引バージョン管理

私がしたいのは、インデックスが最新オブジェクトのものであることを保証する方法です。たとえば、RabbitMQへのオブジェクトの更新が2つあり、RabbitMQから順不同ですフィールド 'Version'に1と2の値がある場合、Luceneに「このドキュメントのバージョンが既存のドキュメントよりも低い場合はドキュメントを更新しない」と伝える方法はありますか?イベントで

おかげ

答えて

0

は誰にも同様の問題を持って、更新する前に、インデックスを検索することになりました。最も効率的な方法ではありませんが、ジョブは完了します。

var doc = (from d in results 
         let ver = long.Parse(d.GetField("Version").StringValue) 
         where ver < model._Version 
         orderby ver descending 
         select d).FirstOrDefault(); 

次に、結果のドキュメントを使用して更新します。