在我的项目中,如果 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?还是匹配?有什么建议么?术语是否将数组与字符串进行比较?谢谢。