nosql – RavenDB – 查询问题 – 陈旧的结果/索引
发布时间:2020-12-13 13:30:50 所属栏目:百科 来源:网络整理
导读:在查询RavenDB时,我注意到它没有立即得到预期的结果.可能与索引有关,我不知道. 例如 : int ACount = session.QueryPatron() .Count(); int BCount = session.QueryTheaters() .Count(); int CCount = session.QueryMovies() .Where(x = x.Status == "Releas
在查询RavenDB时,我注意到它没有立即得到预期的结果.可能与索引有关,我不知道.
例如 : int ACount = session.Query<Patron>() .Count(); int BCount = session.Query<Theaters>() .Count(); int CCount = session.Query<Movies>() .Where(x => x.Status == "Released") .Count(); int DCount = session.Query<Promotions>() .Count(); 当我执行此操作时,ACount和BCount会在第一次运行时立即获取它们的值.但是,CCount和DCount在三到四次运行之后才会获得它们的值.它们在前几次运行中显示0(零)值. 为什么这会发生在底部两个而不是前两个查询?如果因为陈旧的结果(或索引),那么当我第一次运行时,如何修改我的查询以获得每次的准确结果.谢谢你的帮助.
如果尚未为Movies查询定义索引,Raven将创建一个
Dynamic Index.如果重复使用该查询,索引将自动保留.否则Raven将丢弃它,这可以解释为什么你在前几次运行中获得0结果.
您还可以指示Raven等待索引过程,以确保您始终可以使用WaitForNonStaleResults指令获得最准确的结果(即使这可能不是一个好主意,因为它会减慢您的查询速度): session.Query<Movies>() .Customize(x => x.WaitForNonStaleResults()) .Where(x => x.Status == "Released") .Count(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |