3

考虑以下产品列表,目前这些产品按名称排序,这会产生不公平的结果,可能会导致以下输出(仅基于其“幸运”产品命名,将 1 家公司置于结果首位)

公司 x 产品 1
公司 x 产品 2
公司 x 产品 3
公司 y 产品 a
公司 z 产品 a
公司 y 产品 b
公司 z 产品 b
公司 y 产品 c
公司 z 产品 c

如何使用 elasticsearch 对其进行排序,使其以“循环”顺序出现,即在重复之前选择每个唯一项目一次。所以上面的列表会是这样的:

公司 x 产品 1
公司 y 产品 a
公司 z 产品 a
公司 x 产品 2
公司 y 产品 b
公司 z 产品 b
公司 x 产品 3
公司 y 产品 c
公司 z 产品 c

我发现这个问题要求 LINQ:LINQ order by "round robin"

4

1 回答 1

1

Unless you find some kind of script solution, your best bet is to perform several elasticsearch searches and merge the results manually. You can at least perform all the searches in a single request using the Multi Search API.

于 2013-08-15T02:39:10.850 回答