为什么RavenDB返回错误的总结果计数?

为什么RavenDB返回错误的总结果计数?,ravendb,Ravendb,如下面的单元测试所示,我期望统计结果为2,但为3。为什么呢 [Test] public void RavenQueryStatisticsTotalResultsTest1() { using (var db = _documentStore.OpenSession()) { db.Store(new Club { Name = "Foo1", Type = "Amateur" }); // --> Match

如下面的单元测试所示,我期望统计结果为2,但为3。为什么呢

    [Test]
    public void RavenQueryStatisticsTotalResultsTest1()
    {
        using (var db = _documentStore.OpenSession())
        {
            db.Store(new Club { Name = "Foo1", Type = "Amateur" }); // --> Matches all conditions
            db.Store(new Club { Name = "Foo2", Type = "Professional" });
            db.Store(new Club { Name = "Foo3", Type = "Amateur" }); // --> Matches all conditions
            db.Store(new Club { Name = "Boo1", Type = "Amateur" });
            db.Store(new Club { Name = "Boo2", Type = "Professional" });
            db.SaveChanges();
        }

        WaitForIndexing(_documentStore);

        using (var db = _documentStore.OpenSession())
        {
            RavenQueryStatistics stats;
            var query = db.Query<Club>()
                    .Statistics(out stats)
                    .Where(club => club.Type == "Amateur")
                    .Intersect()
                    .Search(club => club.Name, "Foo*", escapeQueryOptions: EscapeQueryOptions.AllowPostfixWildcard); 

            var clubs = query.ToList();

            Assert.AreEqual(2, clubs.Count);
            Assert.AreEqual(2, stats.TotalResults); // I expect 2 but was 3! Why is that?
        }
    }
[测试]
公共无效RavenQueryStatisticsTotalResultsTest1()
{
使用(var db=\u documentStore.OpenSession())
{
db.Store(新俱乐部{Name=“Foo1”,Type=“aftermal”});//-->匹配所有条件
db.商店(新俱乐部{Name=“Foo2”,Type=“Professional”});
db.Store(新俱乐部{Name=“Foo3”,Type=“业余”});//-->匹配所有条件
db.商店(新俱乐部{Name=“Boo1”,Type=“业余”});
db.商店(新俱乐部{Name=“Boo2”,Type=“Professional”});
db.SaveChanges();
}
WaitForIndexing(_documentStore);
使用(var db=\u documentStore.OpenSession())
{
拉文奎尔统计数据;
var query=db.query()
.统计数据(统计数据)
.Where(club=>club.Type==“业余”)
.Intersect()
.Search(club=>club.Name,“Foo*”,escapeQueryOptions:escapeQueryOptions.AllowPostfixWildcard);
var=query.ToList();
断言。相等(2,梅花。计数);
Assert.AreEqual(2,stats.TotalResults);//我希望2是3!为什么?
}
}

当使用多个where子句时,需要
Intersect
。要将
Where
Search
组合在一起,您必须将
Search选项传递给
Search

使用(var db=\u documentStore.OpenSession()){
拉文奎尔统计数据;
var query=db.query()
.Customize(=>u.waitForNonSalesultsAsoflastWrite())
.统计数据(统计数据)
.Where(club=>club.Type==“业余”)
.搜索(
club=>club.Name,
“Foo*”,
escapeQueryOptions:escapeQueryOptions.AllowPostfixWildcard,
选项:搜索选项。和);
var=query.ToList();
断言。相等(2,梅花。计数);
Assert.AreEqual(2,stats.TotalResults);
}

你好,托马斯!谢谢你的回答。这是否意味着Intersect子句只能与Where子句一起使用,或者是否还有其他子句也可以使用它?Raven关于这个主题的文档非常少