RavenDb 报错 has already produced 16 map results for a source document 解决方案

今天发现 RAVenDb 数据库报告错误

Index 'OrderTicketIssueReportIndex' has already produced 16 map results for a source document 'ff0ff6ed-2eab-4fba-8a61-a1b85d9e14cb', while the allowed max number of outputs is 15 per one document. Please verify this index definition and consider a re-design of your entities or index.

 

经过研究, Oren Eini 给出原因和解决方案, 

通过 RavenDb Studio 解决方法:

Go to Add > Max Inputs in the index edit screen.

 

通过代码解决的方案, 在建立索引时, 添加属性:

 1    public class OrderTicketIssueReportIndex : AbstractIndexCreationTask<Order>
 2    {
 3        public OrderTicketIssueReportIndex()
 4        {
 5            MaxIndexOutputsPerDocument = 300; // 通过这个设置, 让服务器索引每文档内子对象超过16个的默认限制
 6 
 7            Map = orders =>
 8                from order in orders
 9                from itin in order.Itineraries
10                where string.IsNullOrEmpty(itin.TicketNumber) == false && itin.PurchaseIssueId.HasValue
11                let firstItin = (from i in order.Itineraries
12                                 where i.TicketNumber == itin.TicketNumber
13                                 orderby i.Flight.DepartureDate ascending
14                                 select i).FirstOrDefault()
15                let purchaseIssue = LoadDocument<PurchaseIssue>(itin.PurchaseIssueId.ToString())
16                select new OrderTicketIssueReportIndexModel
17                {
18                    PlaceOrderTime = order.PlaceOrderTime,
19                    DepartureDate      = itin.Flight.DepartureDate,

 

转载于:https://www.cnblogs.com/nepton/p/9729077.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值