如何使用elasticsearch为“randomize”结果创建高级查询

I'm having a task to create a search using elasticsearch with custom result to show. I have a table that contain many fields, but these are the important fields: merchant, name, price.

the data is like this:

id  merchant   name   price
1   abc        aqua   3.50
2   abc        lorem  1.00
...
60  abc        ipsum  1.50
61  xyz        harley 2.00
62  xyz        barley 0.50
...
115 xyz        sweet  5.60

As you can see the ordering is by id, but the data merchant is stacked, the same merchant until several rows, then go to next merchant, also stacked.

So, the task is to show the rows but in different merchant every row. for example we have 4 different merchants, so the result should be

merchant   name     price
abc        ...      ...
def        ...      ...
ghi        ...      ...
xyz        ...      ...
abc        ...      ...  -->start with abc again

start with abc again, after all merchant showed once.

I'm having little experience in elasticsearch, i've read the documentation and want to know if that can be achieved using elasticsearch