2015-12-21 109 views
0

我試圖找出編程方式如果一個索引是陳舊或不是,理想的情況下它有多遠。獲取RavenDB索引統計不查詢

我的例子是一個索引,以查看用戶是否擁有基於此索引的權限;

public class PermissionType_GrantedTo : AbstractIndexCreationTask<Person, GrantedPermissionResult> 
{ 
    ... 
} 

到目前爲止我所管理的最好的是這樣的 - 一個「拿0結果」的指標結果查詢 - 我不喜歡它;

RavenQueryStatistics stats; 
var results = await session.Query<GrantedPermissionResult>() 
    .Statistics(out stats) 
    .Take(0) 
    .ToListAsync(); 

stale = stats.IsStale; 
log($"{(stale ? "Stale" : "Fresh")}"); 

有一種方法來獲取索引的當前狀態,對不對?

回答

2

如果你需要知道的是一個給定的索引是否過時或沒有,你可以做到以下幾點:

var indexName = new GrantedPermissionResult().IndexName; 
var isStale = documentStore.DatabaseCommands.GetStatistics().StaleIndexes.Contains(indexName); 

如果您想了解任何指數等統計數據,你可以在這裏找到:

documentStore.DatabaseCommands.GetStatistics().Indexes 

希望這會有所幫助。

// J

+0

這很完美。謝謝。 –