gpt4 book ai didi

c# - RavenDB Map Reduce 非重复索引

转载 作者:太空狗 更新时间:2023-10-29 23:50:10 25 4
gpt4 key购买 nike

我们有一个具有嵌套属性的对象,我们想让它易于搜索。这很容易实现,但我们还想聚合基于多个字段的信息。就域名而言,我们有多项交易,除了卖家之外,这些交易具有相同的详细信息。我们需要将这些合并为一个结果,并在下一页显示卖家选项。但是,我们仍然需要能够根据初始页面上的卖家进行过滤。

我们尝试了类似下面的方法,试图在一行中收集多个卖家,但它包含重复项并且索引的创建需要很长时间。

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 来说还很陌生并且正在努力寻找想法。如果我们在客户端保持简单的索引和分组,那么我们就无法保持分页的一致性。

有什么想法吗?

最佳答案

您正在对文档 ID 进行分组。 deal.Id,因此您永远不会真正生成跨多个文档的减少。我认为这不是故意的。

关于c# - RavenDB Map Reduce 非重复索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com