如何将具有相同字段值的结果每次连续显示多次时限制为X份文档

问题描述 投票:0回答:1

我有一个不确定的解决方法。真的希望这里有人可以帮助我找出解决方法。

假设我有100个文档,所有文档都包含user_id字段。我知道大多数文档都来自不同的user_id,但是文档1-10和20-29来自相同的user_id。

我想做的是,确保同一行中连续多次返回相同的user_id时,我只能看到最新的两个文档。因此,如果user_id 1连续显示两次以上,则我想限制这些文档。我希望每次user_id都发生这种情况,而不是在此之后完全限制它。


如果我现在索取所有已编制索引的文档,则会得到类似以下结果:

[1,1,1,1,1,1,1,1,1,1,1,2,3,4,5,6,7,8,9,10,11,< [1,1,1,1,1,1,1,1,1,1,...]


我正在寻找的东西,我们可以确保将这些1的组限制为连续两个文档,例如:

[[1,1

,2,3,4,5,6,7,8,9,10,11,1,1,12,...]] >注意1, 1, ..., 1, 1, ...在这里发生,这意味着相同用户ID的行已被缩减为两行,而不是将它们全部删除,这会导致类似的结果:

[[[[[1,1

,2,3,4,5,6,7,8,8,9,10,11,12,...]
如果请求是分页的(多个查询),我也希望它能正常工作。
因此,假设我请求的前两页大小为5,那么我想获得:

第1页:

[1、2、3、4]

Page2:[5,6,7,8,9]

而不是:

第1页:

[1、2、3、4]

第2页:[1、1、1、1、1]

我希望我对问题的描述足够好,以至于有人可以理解。如果没有,请让我知道,以便尝试其他解释。


我有一个不确定的解决方法。真的希望这里有人可以帮助我找出解决方法。想象一下,我有100个文档,所有文档都带有user_id字段。我知道大多数...
elasticsearch search lucene kibana
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.