无需查询即可获取RavenDB索引统计信息

时间:2015-12-21 16:20:45

标签: c# indexing 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")}");

必须有办法获得索引的当前状态,对吗?

1 个答案:

答案 0 :(得分:2)

如果您需要知道的是指定的索引是否陈旧,您可以执行以下操作:

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

如果您需要有关任何索引的其他统计信息,请在此处找到:

documentStore.DatabaseCommands.GetStatistics().Indexes

希望这有帮助。

∥焦