2013-06-21 46 views
3

考虑产品的后续名单,这些都按名称排序的那一刻,这给出了一个不公平的结果,这可能会导致下面的输出(给予1家公司结果的顶部,根据他们的'幸运' 仅productnaming)Elasticsearch(循环排序)

X公司产品1
X公司产品2
X公司产品3
Y公司产品a
Z公司产品a
Y公司产品b
Z公司产品b
Y公司的产品C
Z公司的产品C

我哪有那么它在“循环”命令出来解决这使用elasticsearch,也就是重复前一次选择每一个独特的项目。所以上面的列表会出来这样的:

X公司产品1
Y公司产品一个
Z公司产品一个
X公司产品2
Y公司产品B
Z公司产品B
X公司产品3
Y公司的产品C
Z公司的产品C

我发现个被问LINQ问题:LINQ order by "round robin"

+0

是Elasticsearch为此需要解决?有基于脚本的排序,但是这是据我可以帮助:http://www.elasticsearch.org/guide/reference/api/search/sort/ –

回答

1

除非你找到某种脚本的解决方案,最好的办法是进行几个elasticsearch搜索和手动合并的结果。您至少可以使用Multi Search API在单个请求中执行所有搜索。