1

在我的项目中,如果 user_id 匹配,我想提升 PersonRecord 的搜索结果。每个 PersonRecord 都有一个 user_ids 数组(那些用户拥有该 PersonRecord)。现在我想将名称和 user_id 传递给搜索,并希望返回与名称完全匹配的内容,如果 user_id 中有匹配项,则提升搜索结果。这是代码:

  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 是字符串。我应该在查询中使用术语还是 ID?还是匹配?有什么建议么?术语是否将数组与字符串进行比较?谢谢。

4

1 回答 1

2

您可以为此使用条款

m.should { m.terms 'user_ids', [user ids array], :boost => 100}
于 2013-11-01T10:48:27.513 回答