我们有一个具有嵌套属性的对象,我们希望这些属性可以轻松搜索.这很容易实现,但我们也希望基于多个字段聚合信息.就域名而言,我们有多个交易,除卖家外,其具有相同的详细信息.我们需要将这些作为单个结果合并,并在下一页显示卖家选项.但是,我们仍然需要能够在初始页面上根据卖家进行过滤.
我们尝试了类似下面的内容,尝试在一行中收集多个卖家,但它包含重复项,并且索引的创建需要永远.
Map = deals => deals.Select(deal => new { Id = deal.ProductId, deal.ContractLength, Provider = deal.Provider.Id, Amount = deal.Amount }); Reduce = deals => deals.GroupBy(result => new { result.ProductId, result.ContractLength, result.Amount }).Select(result => new { result.Key.ProductId, result.Key.ContractLength, Provider = result.Select(x => x.Provider).Distinct(), result.Key.Amount });
我不确定这是解决这个问题的最佳方法,但对Raven来说是相当新的,并且正在努力争取创意.如果我们在客户端保持索引简单和分组,那么我们就不能保持分页一致.
有任何想法吗?