2013-11-01 52 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

您可以使用条款本

相关问题