2013-06-21 40 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在單個請求中執行所有搜索。