Indexing 取函数';无法工作,无法发送到RavenDB进行查询

Indexing 取函数';无法工作,无法发送到RavenDB进行查询,indexing,ravendb,Indexing,Ravendb,查询代码: var query = session.IndexQuery<App_OrgSearch.IndexResult, App_OrgSearch>(); var organizationUnitResults = query.Statistics(out stats) .Skip(0) .Take(5) .AsProjection<Org>()

查询代码:

var query = session.IndexQuery<App_OrgSearch.IndexResult, App_OrgSearch>();
var organizationUnitResults = query.Statistics(out stats)
                    .Skip(0)
                    .Take(5)
                    .AsProjection<Org>().ToList();

public static IRavenQueryable<TResult> IndexQuery<TResult, TIndex>(this IDocumentSession session)
            where TIndex : AbstractIndexCreationTask, new()
        {
            return session.Query<TResult, TIndex>();
        }
var query=session.IndexQuery();
var organizationUnitResults=query.Statistics(out stats)
.Skip(0)
.采取(5)
.AsProjection().ToList();
公共静态IRavenQueryable IndexQuery(此IDocumentSession会话)
其中TIndex:AbstractIndexCreationTask,new()
{
返回session.Query();
}
App_OrgSearch是我定义的索引,如下所示:

public class App_OrgSearch : AbstractIndexCreationTask<Org, App_OrgSearch.IndexResult>
    {
        public class IndexResult
        {
            public string Id { get; set; }
            public string BusinessName { get; set; }
            public string ShortName { get; set; }
            public IList<string> Names { get; set; }
            public List<string> PhoneNumbers { get; set; }
            public List<OrganizationUnitPhone> OrganizationUnitPhones { get; set; }
        }

        public App_OrganizationUnitSearch()
        {
            Map = docs => from doc in docs
                select new
                {
                    Id = doc.Id,
                    Names = new List<string>
                    {
                        doc.BusinessName,
                        doc.ShortName,
                    },
                    BusinessName = doc.BusinessName,
                    ShortName = doc.ShortName,
                    PhoneNumbers = doc.OrganizationUnitPhones.Where(x => x != null && x.Phone != null).Select(x => x.Phone.Number),

                };

            Indexes.Add(x => x.Names, FieldIndexing.Analyzed);
        }
    }
公共类应用程序\u OrgSearch:AbstractIndexCreationTask
{
公共类索引结果
{
公共字符串Id{get;set;}
公共字符串BusinessName{get;set;}
公共字符串短名称{get;set;}
公共IList名称{get;set;}
公共列表电话号码{get;set;}
公共列表组织单元电话{get;set;}
}
公共应用程序_OrganizationUnitSearch()
{
Map=docs=>来自文档中的文档
选择新的
{
Id=文件Id,
名称=新列表
{
BusinessName博士,
ShortName博士,
},
BusinessName=doc.BusinessName,
ShortName=doc.ShortName,
PhoneNumbers=doc.OrganizationUnitPhones.Where(x=>x!=null&&x.Phone!=null)。选择(x=>x.Phone.Number),
};
添加(x=>x.Names,fieldindex.analysis);
}
}

我在数据库里有27条记录。我想取5,但查询后,所有27条记录都返回了。为什么
Take
函数不起作用?

您的示例代码似乎有误

var query = session.IndexQuery<App_OrgSearch.IndexResult, App_OrgSearch>();
var organizationUnitResults = organizationUnitsQuery.Statistics(out stats)
var query=session.IndexQuery();
var organizationUnitResults=organizationUnitsQuery.Statistics(输出统计数据)

什么是组织单元?您将查询设置为
query
,但为了清晰起见,没有对会话上的
IndexQuery
方法进行编辑;删除了不明确的tagI,通过更改函数调用顺序解决了此问题:var organizationUnitResults=query.Statistics(out stats).AsProjection().Skip(0).Take(5).ToList();