【问题标题】:Get RavenDB index stats without a query无需查询即可获取 RavenDB 索引统计信息
【发布时间】:2015-12-21 16:20:44
【问题描述】:

我试图以编程方式找出索引是否过时,理想情况下它落后了多远。

我的例子是一个索引,看用户是否有权限,基于这个索引;

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")}");

一定有办法获取索引的当前状态,对吧?

【问题讨论】:

    标签: c# indexing ravendb


    【解决方案1】:

    如果您只需要知道给定索引是否过时,您可以执行以下操作:

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

    如果您想要关于任何索引的其他统计信息,可以在这里找到:

    documentStore.DatabaseCommands.GetStatistics().Indexes
    

    希望这会有所帮助。

    //J

    【讨论】:

    • 太完美了。谢谢。
    猜你喜欢
    • 2023-03-26
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多