あなたはDatabaseCommands IndexQuery外にクエリを作成し、以下のようにIndexQueryクエリ文字列移入しQuery.ToString()を使用することができます。この方法を使用して
var query = session.Advanced.LuceneQuery<Asset, AssetsByExpirationDate>()
.WhereBetween("ExpirationDate",DateTime.MinValue,new DateTime(2012, 6, 1));
var queryString = query.ToString();
session.Advanced.DatabaseCommands.DeleteByIndex(typeof(AssetsByExpirationDate).Name, new IndexQuery
{
Query = queryString
});
を、あなたはLuceneクエリ構文に精通していない場合RavenDb Query APIは、前に示したように.ToString()を呼び出して構築し、Luceneのフォーマットされたクエリ文字列を取得します。
ExpirationDate:{00010101000000000 TO 20120601000000000}
DatabaseCommandsを使用して削除すると、古いインデックスが使用されないことに注意してください。したがって、標準的なluceneクエリを使用して削除するドキュメントを取得してから、単純にSession.Delete(asset) foreachドキュメントを削除してください。
var query = session.Advanced.LuceneQuery<Asset, AssetsByExpirationDate>()
.WhereBetween("ExpirationDate",DateTime.MinValue,new DateTime(2012, 6, 1));
var assets = query.ToList();
foreach(var asset in assets)
{
session.Delete<Asset>(asset);
}
session.SaveChanges();
ペイRavendbがデフォルトでのみ128結果を返しますので、ページネーションへ注意、。
なぜ期限切れのバンドルを使用しないのですか? –