2013-11-01 201 views
1

在我的項目中,如果user_id匹配,我想提升PersonRecord的搜索結果。每個PersonRecord都有一個user_id數組(這些用戶擁有該PersonRecord)。現在我想傳遞一個名稱和user_id到搜索中,並且想要返回一個完全匹配的名字,並且在user_id中存在匹配的情況下提升搜索結果。下面的代碼:Elasticsearch查詢匹配數組中的元素

results = PersonRecord.search do |search| 
    search.query do |query| 
     query.boolean do |m| 
     m.must {match 'name.full', 'David Butler'} 
     m.should {|m| m.term 'user_ids', user.id, :boost => 100} 
     end 
    end 
    end 

注意這裏user_ids是USER_ID的陣列和user.id是字符串。我應該在查詢中使用術語嗎?還是Ids?還是比賽?有什麼建議麼?術語是否將數組與字符串進行比較?謝謝。

回答

2

您可以使用條款本

相關問題