我试图以编程方式找出一个索引是否陈旧,理想情况是它背后有多远。
我的示例是一个索引,用于根据此索引查看用户是否具有权限;
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")}");
必须有办法获得索引的当前状态,对吗?
答案 0 :(得分:2)
如果您需要知道的是指定的索引是否陈旧,您可以执行以下操作:
var indexName = new GrantedPermissionResult().IndexName;
var isStale = documentStore.DatabaseCommands.GetStatistics().StaleIndexes.Contains(indexName);
如果您需要有关任何索引的其他统计信息,请在此处找到:
documentStore.DatabaseCommands.GetStatistics().Indexes
希望这有帮助。
∥焦