2013-01-09 55 views
3

我使用elasticsearch讓IDS一些值的映射,但至關重要的是,我一直在爲了使IDS有結果的順序。保持編號順序查詢

例子:

def term_mapping(ids) 
    ids = ids.split(',') 
    self.search do |s| 
     s.filter :terms, id: ids 
    end 
    end 

    res = term_mapping("4,2,3,1") 

結果集合應該包含以4,2,3,1與IDS的對象...

你有什麼想法,我怎麼能做到這一點?

回答

1

如果您需要使用搜索,您可以在將它們發送到elasticsearch並按ID排序結果之前對它們進行排序,或者可以創建一個自定義排序腳本,它將返回當前文檔在ID數組中的位置。但是,更簡單快捷的解決方案是簡單地使用Multi-Get而不是搜索。

+0

好的,謝謝你,我想多得到的是不支持輪胎還。直到那時我纔會堅持使用基於ruby的簡單解決方案...... – spas